[MLton] Re: [Smlnj-dev-list] Evolving SML

John Reppy jhr@cs.uchicago.edu
Tue, 25 Oct 2005 15:51:16 -0500


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