chickadee » typeclass » define-class

(define-class NAME FIELD-FORM ...)syntax

Defines a type class named NAME, where FIELD-FORM ... defines one or more fields for instances of this class. FIELD-FORM should be of the form:

 FIELD-FORM = FIELD-LABEL | (SUPERCLASS-NAME FIELD-LABEL)

SUPERCLASS-NAME is the name of a class from which the field is inherited.

The result of this macro is the creation of a constructor with name of the form MAKE-CLASSNAME, which in turn takes an instance constructor procedure and applies to the given field values.