All Standard ML is divided into two parts.  The first part, the core language, comprises the fundamental programming constructs of the language --- the primitive types and operations, the means of defining and using functions, mechanisms for definining new types, etc.  These mechanisms are the subject of this part of the notes.   The second part, the module language, comprises the mechanisms for structuring programs into separate units and is described in the next part of these notes.