Types may be either named or anonymous. With structure and union types, the name is part of the type specifier, allowing recursively defined types such as:
[Macro]
alien: def-alien-type
name type
This macro globally defines name as a shorthand for the Alien type type. When introducing global structure and union type definitions, name may be nil, in which case the name to define is taken from the type's name.