This collection provides one file:

 _unit.ss_: conveniences and idioms for mzscheme units.


The _unit.ss_ module re-exports all bindings from (lib "").
It's unnecessary but harmless to re-import (lib "") when using
this module.

CONCEPTS -------------------------------------------------------------

A `functor' is a function whose result is a unit with no imports. This
is analogous to a mixin. The utility of a functor is as a convenience
for constructing units that are only parameterized by a few
definitions without having to resort to the complexity of linking
compound units.

MACROS ---------------------------------------------------------------

> (new-unit sig-identifier [export-name expr] ...) :: SYNTAX

Constructs a unit with no imports that exports the given signature
by binding each export to the result of evaluate each corresponding
expression. The expressions are evaluated before the unit is

> (functor lambda-formals (sig-identifier ...) linkage-decl ...) :: SYNTAX

Creates a functor with the given formal arguments that exports the
given signatures and is constructed with the given linkage
declarations. This is syntactic sugar for

(lambda lambda-formals
    (export sig-identifier ...)
    linkage-decl ...))

> (require-unit expr sig-expr ...) :: SYNTAX

Invokes a unit with no imports and defines all bindings in the
specified signatures. See the documentation for the _unit_ form
for the definition of `sig-expr'.