Next: iklib records defs predicate, Previous: iklib records defs destructor, Up: iklib records defs [Index]
In a use of the syntax define-record-type
, the definition
clause:
(constructor-signature ?signature)
allows the specification of a type signature for the record–type constructor. This clause is meant to be used in the context of the typed language.
Some usage examples:
(define-record-type <duo> (fields {one <fixnum>} {two <string>}) (constructor-signature (lambda (<fixnum> <string>) => (<duo>)))) (define-record-type <alpha> (fields {A <fixnum>} {B <string>}) (protocol (lambda (make-record) (lambda (A) (make-record A (number->string A))))) (constructor-signature (lambda (<fixnum>) => (<alpha>))))
This clause is needed because the protocol
clause does not
allow the specification of a full type signature for the record–type
constructor.
When the clause constructor-signature
is not used, the
syntax define-record-type
just defines a default type
signature as follows:
(lambda <list> => (?type-name))