The sources are split into several directories.

-----------------------------------

dbind, excptn, conts and state:

These directories contain implementations of evaluation
for the calculi of dynamic binding, exceptions, composable
continuations and state, respectively.

source:  

Contains the main body of the interpreter, including the abstract
syntax, substitutions, and typechecking code. 

table:

Contains SML library files for implementing sets and finite maps.

-----------------------------------


In order to get access to a particular interpreter, follow these steps:

- cd into the appropriate directory (dbind for dynamic binding, excptn
for exceptions, and conts for continuations)

- CM.make() the sources there

- This will leave you with a top-level structure (called
DynamicBinding, Exceptions, or Continuations, depending on the
directory) of the following signature


signature NUBOX =
sig
    structure Support : SUPPORT

    structure Absyn : ABSTRACT_SYNTAX
	where type support = Support.support

    structure Parse : PARSE
	where Support = Support and Absyn = Absyn

    structure Ctx : CONTEXT
	where Support = Support and Absyn = Absyn 

    structure Typecheck : TYPECHECK
	where Support = Support and Absyn = Absyn and Ctx = Ctx

    val fromFile : string -> unit
end


- The identifiers in NUBOX are self-explanatory. The most immediatelly
important is, obviously, the function

	fromFile : string -> unit

which, given a file name, takes its contents and then parses,
typechecks and evaluates it.

- In each directory there is an example file called

        example.nbx

which you can try to evaluate.




