#### 4.4.17 satisfies [Type Specifier] ¶

#### Compound Type Specifier Kind:: ¶

Predicating.

#### Compound Type Specifier Syntax:: ¶

(`satisfies`{predicate-name})

#### Compound Type Specifier Arguments:: ¶

predicate-name—a symbol.

#### Compound Type Specifier Description:: ¶

This denotes the set of all objects that satisfy the predicate predicate-name, which must be a symbol whose global function definition is a one-argument predicate. A name is required for predicate-name; lambda expressions are not allowed. For example, the type specifier `(and integer (satisfies evenp))` denotes the set of all even integers. The form `(typep x '(satisfies p))` is equivalent to `(if (p x) t nil)`.

The argument is required. The symbol * can be the argument, but it denotes itself (the symbol *), and does not represent an unspecified value.

The symbol satisfies is not valid as a type specifier.