Moscow ML implements the Core language of Standard ML as revised in 1996 [7, 6], and much of the Standard ML Basis Library [2], the most important omission being the functional stream input-output operations. The new second edition of Paulson's textbook ML for the Working Programmer uses the revised Core language and the new SML Basis Library.
The Standard ML Basis Library is a joint effort of the Standard ML of
New Jersey, MLWorks, and Moscow ML developers to enhance the portability of Standard ML
programs.
The Moscow ML Language Overview [8] lists the library structures implemented by Moscow ML, and contains an index to all the identifiers they define. The same information is available also from mosml's on-line help; see Section 3.1.
For a comprehensive description of the libraries, see the Basis Library documentation [2], which will become available from a commercial publisher. Currently it must be obtained from the Internet; see Section 13.
The Basis Library and the revised Standard ML language are slightly incompatible with both the 1990 Definition of Standard ML and with SML/NJ version 0.93. Invoking Moscow ML with `mosml -P sml90' gives a top-level environment compatible with the 1990 Definition. Invoking Moscow ML with option `mosml -P nj93', gives a top-level environment compatible with the old SML/NJ version 0.93. See Section 3.3 for more information on command-line options.
An important change in SML 1996 is the adoption of value polymorphism; see Section 7.