SML '97 Conversion Guide

Warning! This document is under construction.

Introduction

The primary goal of this document is to help current SML programmers learn to use SML '97, and to help them convert old SML code to SML '97. It concentrates on changes in the language and libraries, and assumes some familiarity with SML. However, it should also be of some use to new SML programmers, as a supplement to one of the available textbooks or tutorials.

The new SML '97 language itself is defined in The Definition of Standard ML (Revised). Appendix G of that book briefly summarizes the language changes, mainly from the point of view of the language semantics. The treatment here expands on that description, taking the point of view of a programmer. Note that the second editions of Paulson's and Ullman's books describe SML '97.

The other major changes are encompassed in an extensive new Basis library that replaces the minimal initial basis described in Appendices C and D of the original Definition (also known as SML 90).


1. Language Changes

[See appendix G of the new Definition]

  • 1.1. Types and Type Checking