Common Lisp the Language 2nd Edition


next up previous contents index
Next: Type Conversion Function Up: Type Specifiers Previous: Type Specifiers That

4.7. Defining New Type Specifiers

New type specifiers can come into existence in two ways. First defining a new structure type with defstruct automatically causes the name of the structure to be a new type specifier symbol. Second the deftype special form can be used to define new type-specifier abbreviations.


[Macro]
deftype name lambda-list [[{declaration}* | doc-string]] {form}*

This is very similar to a defmacro form: name is the symbol that identifies the type specifier being defined lambda-list is a lambda-list (and may contain &optional and &rest markers) and the forms constitute the body of the expander function. If we view a type specifier list as a list containing the type specifier name and some argument forms type specifier list as a list containing the type specifier name and some argument formsration}* | doc-stri