The MLWorks interactive environment library is built in to MLWorks, in the permanently available structure Shell. It provides a number of facilities for customizing the behavior of the MLWorks interactive environment.
The interactive environment library is only available in the interactive context, that is, it is not available to the MLWorks batch compiler, and no separate file versions of its units are provided.
The Shell structure has the following skeletal signature:
signature Shell = sig structure Debug structure Dynamic structure Editor structure Inspector structure Options structure Path structure Profile structure Project structure Timer structure Trace val exit: int -> unit val saveImage: (string * bool) -> unit val startGUI: unit -> unit end
The top-level functions exit, saveImage and startGUI relate to the interactive environment.
The Project structure provides a programmatic interface to the file-based portion of the MLWorks project system. Much of the functionality provided by these structures is also available in the GUI environment via the project workspace.
The structures Debug and Trace provide an interface to parts of the MLWorks debugger and tracer tools, while the structures Profile and Time provide an interface to the profiler. The Inspector structure provides an interface to the inspector tool.
The Options structure controls the settings of many optional features and parameters of the MLWorks interactive environment, such as the way ML values are printed, and whether compilation should be compatible with features of other ML implementations or of earlier versions of the Definition of Standard ML.
The Editor structure provides an interface to the MLWorks custom editor facility.
Finally, the Dynamic structure provides an experimental implementation of dynamic types.