chickadee » typed-modules » module

(module NAME (EXPORT-SPEC1 ...) BODY ...)syntax
(module NAME SIGNATURENAME BODY ...)syntax

EXPORT-SPEC may be one of

(IDENTIFIER : syntax [IDENTIFIER1 ...]) syntax export with optional indirect exports
(IDENTIFIER : TYPE) value export with type
((IDENTIFIER1 ...) : TYPE)the same as (IDENTIFIER1 : TYPE) ...

Additionally, the default meaning of export lists is still supported:

IDENTIFIER a value or syntax export
(syntax: IDENTIFIER1 ...) syntax epxort, optionally with indirect exports
(interface: INTERFACENAME) exports from given interface
(IDENTIFIER1 ...) a syntax export with indirect exports

The module defined implicitly imports : (the type declaration form).

SIGNATURENAME should be the name of a signature, which is a compile-time construct that names a set of (optionally typed) exports: