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.
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.