a-signature.ss: Whole-module Unit Signatures

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

The a-signature.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 signature (see section 55).

(module name (lib "a-signature.ss")
  require-decl ···
  sig-spec ···)

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

See section 55.1 for the grammar of sig-spec. The expansion of this module defines and provides a signature name^ containing the sig-specs.

Unlike the body of a a-unit.ss module, a require-decl in a a-signature.ss module must be a literal use of require, require-for-syntax, or require-for-template.

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