To add Svante's answer: I don't think there is a way to verify that a given function is a predicate, as you could do in a statically typed language. Most CL implementations provide introspection functions, such as SBCL sb-introspect:function-arglist, that let you verify that only one argument is accepted. This does not guarantee that the behavior of the function is normal, but it may be better than nothing.
source
share