4.3 Предикаты как спецификаторы типов

Список (satisfies predicate-name) задаёт тип, которому принадлежит множество объектов, удовлетворяющие предикату predicate-name. predicate-name должен быть символом, указывающим на глобальную функцию с одним аргументом. (Требуется именно имя, так как лямбда-выражение недопустимо в связи с проблемами видимости.) Например, тип (satisfies numberp) является тем же, что и number. Вызов (typep x ’(satisfies p)) применяет p к x и возвращает t, если результат true, и nil в противном случае.

Порождать побочные эффекты не является хорошей идеей для предиката, что указан в satisfies.