If the new type specifier takes no arguments, or if all of its arguments are optional, the type specifier may be used as an atomic type specifier . Instead, these literal objects become the objects to which corresponding parameters become bound . The lexical environment of the body is the one which was current at the time the deftype form was evaluated, augmented by the variables in the lambda-list . Recursive expansion of the type specifier returned as the expansion must terminate, including the expansion of type specifiers which are nested within the expansion. The consequences are undefined if the result of fully expanding a type specifier contains any circular structure, except within the objects referred to by member and eql type specifiers .
Documentation is attached to name as a documentation string of kind type .
If a deftype form appears as a top level form , the compiler must ensure that the name is recognized in subsequent type declarations. The programmer must ensure that the body of a deftype form can be evaluated at compile time if the name is referenced in subsequent type declarations. All Rights Reserved.