[previous] [up] [next]     [index]
Next: Flattening Signatures Up: Units with Signatures Previous: Units with Signatures

Signatures

A signature is either a signature description or a bound signature identifier:

  (sig-element  tex2html_wrap_inline100181 ) 
  signature-identifier

sig-element is one of: variable (struct base-identifier (field-identifier tex2html_wrap_inline100181 ) omission tex2html_wrap_inline100181 ) (open signature) (unit identifier : signature)

omission is one of: -selectors -setters (- variable)

Together, the element descriptions determine the set of elements that compose the signature:

The names of all elements in a signature must be distinct.[footnote] Two signatures match when they contain the same element names, and when a name in both signatures is either a variable name in both signatures or a sub-signature name in both signatures such that the sub-signatures match. The order of elements within a signature is not important. A source signature satisfies a destination signature when the source signature has all of the elements of the destination signature, but the source signature may have additional elements.

The define-signature form binds a signature to an identifier:

  (define-signature signature-identifier signature) 
The let-signature form binds a signature to an identifier within a body of expressions:
  (let-signature identifier signature body-expr  tex2html_wrap_inline100183 ) 
Internal define-signature expressions are transformed into let-signature expressions.




[previous] [up] [next]     [index]
Next: Flattening Signatures Up: Units with Signatures Previous: Units with Signatures

PLT