What does all the above buy us? Well, the formal definition of SML implies that SML compilers agree to a remarkable extent. Automatic storage allocation and compiled time checking either eliminate many serious errors or insure the early detection of others. Abstract data types allow for code reuse and easy programme maintenance because they prevent external tampering on internal implementations. Modules allow for incremental construction of large programmes and separate independent specification, coding and compilation of programme components. | ![]() |