Miscellaneous Design Issues in the ML Kit

Nick Rothwell

Introduction: This document covers a number of assorted
design topics involving the ML Kit. These issues are sufficiently
small that they do not merit reports of their own, and yet it is
important that they be covered in order to gain a more complete
understanding of how the Kit operates. The sections are as
follows:

Section 2 covers the evaluation of the Modules language
and the implementation of the associated dynamic environments;

Section 3 describes some of the higher levels of the
interpreter, and the way that the execution and evaluation
heirarchy is structured;

Section 4 describes the mechanism used for top-level
printing;

Section 5 details the implementation of the pervasive
functions of the Kit, corresponding to APPLY in the
Definition;

Section 5 describes the detection and reporting of
elaboration errors;

Section 7 describes file nesting and inclusion, and the
semantics and implementation of the use function;

Section 8 describes the implementation of records,
specifically the notion of flexible record which is needed to
support the ``{...}'' notation in record patterns;