a-unit.ss: Whole-module Units

To load: (require (lib "a-unit.ss"))

The a-unit.ss library serves as a module for the language position of another module. As a language, it provides a shorthand for implementing a module that defines and provides a single unit (see section 55).

(module name (lib "a-unit.ss")
  require-decl ···
  (import tagged-sig-expr ···)
  (export tagged-sig-expr ···)
  init-depends-decl
  unit-body-expr-or-defn
  ···)

require-decl is one of
  (require require-spec ···)
  (require-for-syntax require-spec ···)
  (require-for-template require-spec ···)
  (begin require-decl ···)
  require-macro-use

A require-decl can be a require-macro-use, which is a use of a macro that expands to a require-decl. After any number of require-decls, the content of the module is the same as a unit body; see section 55.1 for more information.

If name is of the form base-unit, then the expansion of the module defines a provides a unit base@ with the given content. Otherwise, the defined and provided unit is name@.