predicate-name - a symbol.
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 symbol satisfies is not valid as a type specifier.