(index ("module" 0) ("module" 0) ("signature" 1147))
(def (sig (syntax "(module NAME (EXPORT-SPEC1 ...) BODY ...)" (id module)) (syntax "(module NAME SIGNATURENAME BODY ...)" (id module))) (p (tt "EXPORT-SPEC") " may be one of") (table (tr (td (tt "(IDENTIFIER : syntax [IDENTIFIER1 ...])")) " " (td "syntax export with optional indirect exports")) "\n" (tr (td (tt "(IDENTIFIER : TYPE)")) "   " (td "value export with type")) "\n" (tr (td (tt "((IDENTIFIER1 ...) : TYPE)")) (td "the same as " (tt "(IDENTIFIER1 : TYPE) ...")))) (p "Additionally, the default meaning of export lists is still supported:") (table (tr (td (tt "IDENTIFIER")) "       " (td "a value or syntax export")) "\n" (tr (td (tt "(syntax: IDENTIFIER1 ...)") " ") (td "syntax epxort, optionally with indirect exports")) "\n" (tr (td (tt "(interface: INTERFACENAME)") " ") (td "exports from given interface")) "\n" (tr (td (tt "(IDENTIFIER1 ...)")) " " (td "a syntax export with indirect exports"))) (p "The module defined implicitly imports " (tt ":") " (the type declaration form).") (p (tt "SIGNATURENAME") " should be the name of a signature, which is a compile-time construct that names a set of (optionally typed) exports:"))
(def (sig (syntax "(signature SIGNATURENAME (EXPORT-SPEC1 ...))" (id signature))) (p "Defines a signature with the given name and export-specifiers and implicitly defines an interface (as with " (tt "define-interface") ") for the exported identifiers.") (p "Signatures can not be exported and are only valid in the compilation unit in which they are defined. If you want to share a signature over several files, it is recommended to use an " (tt "include") " file.") (p "This extension has no runtime code, it is sufficient to use " (tt "import") " instead of " (tt "use") "."))
