chickadee » simple-contracts » xlambda

(xlambda ((r r? ...) .. <- (a a? ...) ...) xpr ....)syntax
(xlambda ((r r? ...) .. <- (a a? ...) ... as as? ...) xpr ....)syntax

where <- separates the results r with postconditions r? ... from the arguments a with preconditions a? ... a rest-parameter as with preconditions as? for each such argument and the body xpr .....

Each xlambda call returns three values, the procedure proper, contract-checked or not, depending on the value of contract-check-level, and documentation of pre- and postconditions in this order.

Deprecated versions of xlambda exist as well. Here k is the number of returned values, if provided, one otherwise.