Next: Foreign Types and Lisp Types, Up: Foreign Types

#### 8.2.1 Defining Foreign Types

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:

         (struct foo (a (* (struct foo))))

An anonymous structure or union type is specified by using the name `nil`. The `with-alien` macro defines a local scope which “captures” any named type definitions. Other types are not inherently named, but can be given named abbreviations using the `define-alien-type` macro.