chickadee » typed-records » defstruct

(defstruct NAME SLOT ...)syntax

Alternative form of defstruct. SLOT may be any of

 SLOTNAME 
 (SLOTNAME DEFAULT)
 (SLOTNAME : TYPE)
 ((SLOTNAME DEFAULT) : TYPE)

Declares:

(: make-NAME (#!rest * -> (struct NAME)))
(: NAME? (* -> boolean : (struct NAME)))
(: NAME-SLOTNAME ((struct NAME) -> TYPE))
(: NAME-SLOTNAME-set! ((struct NAME) TYPE -> undefined))
(: set-NAME! ((struct name) #!rest * -> (struct name)))
(: update-NAME ((struct name) #!rest * -> (struct name)))

Adds specializations as appropriate.