Check out the new USENIX Web site.

An anecdote about ML type inference

Andrew Koenig (
AT&T Bell Laboratories
Murray Hill, New Jersey 07974


ML strongly supports functional programming; its programmers tend to avoid operations with side effects. Thus, for example, instead of mutable arrays, ML programmers usually use lists. These lists behave much like those in Lisp, with the added requirement that all elements have the same type.1 ML lists are not themselves mutable, although the individual elements can be of a (uniform) mutable type. In Lisp terms, ML lists can optionally support RPLACA but not REPLACD. Although it is possible to define a type in ML that would support REPLACD as well, ML programmers usually don't do this unless they need it.

Download the full text of this paper in ASCII (15,262 bytes) and POSTSCRIPT (34,686 bytes) form.

To Become a USENIX Member, please see our Membership Information.