Mistakes and Ambiguities in the definition of Standard ML

The em Definition of Standard ML contains several errors and ambiguities. Some of them have already been published in the em Commentary on Standard ML, but the list given there is incomplete. The paper lists all errors known to me today, including the errors listed in the Commentary. On most of the others I came across when writing the semantics of Extended ML. Most errors are supplied with an explanation ``what goes wrong'' and with a suggested correction. I understand ``error'' in a very broad sense --- ranging from typos to serious flaws in the rules. Some of the problems I mention are originated by a certain tension between formal definitions and informal explanations, e.g. overloading is informally explained though impossible in the given formal setting. Some parts of the paper are difficult to understand without prior knowledge of the Definition and the Commentary, because I rely on the notation and jargon introduced in these books. However, the nature of this paper has it that the various sections do not depend on each other, making it possible for somebody not familiar with the entrails of SML to read the less technical sections on their own.

[1]  Robin Milner,et al.  Commentary on standard ML , 1990 .

[2]  Stefan Kahrs Mistakes and Ambiguities in the Deenition of Standard Ml Structure of the Paper , 2007 .

[3]  Robin Milner,et al.  Definition of standard ML , 1990 .

[4]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[5]  Andrew W. Appel,et al.  A critique of Standard ML , 1993, Journal of Functional Programming.