[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

commonlisp types



There seems to be nothing in CLtL that answers the question:
    "is x a legal type specifier?"
The description of TypeP says that the type argument may be
any of the legal type specifiers except (function ...) or
(values ...).
I would hope that would mean that for any such "legal
arguments" typep would not cause an error.  I would also 
hope that any illegal type would cause an error.
On the other hand the description of how typep handles
(satisfies ...) indicates that errors might well result.

Intuitively, it seems to me that if an error results from
that test the typep test ought to return nil, e.g.,
    (typep nil '(satisfies zerop))

I'd like the spec to say that typep first decides whether
the type is legal, and signals an error if not.  Then,
for things like satisfies, it applies the predicate but
catches errors, and returns nil if an error occurs.

What do you experts (and lawyers) out there think?