From: John R. <jh...@cs...> - 2005-10-25 20:51:27
|
I think that this is a great idea. In fact, as I was walking home yesterday I was drafting a proposal in my head for "\alpha{}ML" :). I like the idea of structuring the process as addenda to the definition. Here are a few ideas for short-term (and medium-term) features that I'd like to see: 1. functional record-update syntax. There is a partial implementation of this feature for SML/NJ, but it hasn't made it out of CVS yet. 2. standardization on integer types. I'd like to see implementations agree to support 32-bit, 64-bit, and arbitrary precision integers, and to agree on what the type "int" means. I think that the biggest mistake we made in the Basis design was failing to standardize on a fixed set of well-defined numeric types. 3. or-patterns (SML/NJ has supported these since '92 or '93) 4. conditional patterns. 5. an standard notation for specifying the build process, so that libraries would be portable. 6. a standard low-level mechanism for specifying FFI. Ssomething like the Haskell FFI layer (http://www.cse.unsw.edu.au/~chak/haskell/ffi/) that tools like nlffigen can target. 7. records with mutable fields. 8. standard support for lazy evaluation. Wadler and MacQueen's proposal is a good starting place. Supporting lazy fields in records might be nice. 9. polymorphic recursion. 10. a standard model of concurrency. - John |