syntax
init-depends-decloptional-body-ctc)sig-spec-block = (tagged-sig-spec[idcontract]...)| tagged-sig-specinit-depends-decl =optional-body-ctc =| contract
The unit value must import a subset of the import signatures and export a superset of the export signatures listed in the unit contract. Additionally, the unit value must declare initialization dependencies that are a subset of those specified in the unit contract. Any identifier which is not listed for a given signature is left alone. Variables used in a given contract expression first refer to other variables in any of the listed signatures, and then to the context of the unit/c expression. If a body contract is specified then the result of invoking the unit value is wrapped with the given contract, otherwise the values are returned as-is.
Changed in version 8.8.0.7 of package base: Changed sig-spec-block to allow arbitrary tagged-sig-specs instead of only allowing tagged-sig-ids. Made bindings from all signatures visible in the scope of each contract expression instead of only the bindings from the same signature. Additionally, contracts on signature bindings are enforced within contract expressions.
syntax
init-depends-decloptional-body-ctcunit-body-expr-or-defn...)sig-spec-block = (tagged-sig-spec[idcontract]...)| tagged-sig-specoptional-body-ctc =| #:invoke/contractcontract
Changed in version 8.8.0.7 of package base: Made bindings from all signatures visible in the scope of each contract expression instead of only the bindings from the same signature. Additionally, contracts on signature bindings are enforced within contract expressions.