Version: 4.1

6 Units

Units organize a program into separately compilable and reusable components. The imports and exports of a unit are grouped into a signature, which can include “static” information (such as macros) in addition to placeholders for run-time values. Units with suitably matching signatures can be linked together to form a larger unit, and a unit with no imports can be invoked to execute its body.

 (require scheme/unit)

The bindings documented in this section are provided by the scheme/unit and scheme libraries, but not scheme/base. The scheme/unit module name can be used as a language name with #lang; see Single-Unit Modules.

    6.1 Creating Units

    6.2 Invoking Units

    6.3 Linking Units and Creating Compound Units

    6.4 Inferred Linking

    6.5 Generating A Unit from Context

    6.6 Structural Matching

    6.7 Extending the Syntax of Signatures

    6.8 Unit Utilities

    6.9 Single-Unit Modules

    6.10 Single-Signature Modules

    6.11 Transformer Helpers