Unit
_Unit_
_unit_
This collection provides one file:
_unit.ss_: conveniences and idioms for mzscheme units.
======================================================================
The _unit.ss_ module re-exports all bindings from (lib "unit.ss").
It's unnecessary but harmless to re-import (lib "unit.ss") when using
this module.
CONCEPTS -------------------------------------------------------------
A `mixit' is a function whose result is a unit with no imports. This
is analogous to a mixin. The utility of a mixit 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
created.
> (mixit lambda-formals (sig-identifier ...) linkage-decl ...) :: SYNTAX
Creates a mixit 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
(compound-unit
(import)
(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'.