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

subtypep vagueness

While trying to build CLX under (the original) HPCL, I've run into a problem
with the rather vague specification of when SUBTYPEP is allowed to say that
it can't determine the relationship between the two types.  The particular
problem I've run into is:

    (subtypep '(simple-array (unsigned-byte 8) (*)) 'sequence) => T T

    (deftype foo () '(simple-array (unsigned-byte 8) (*)))
    (subtypep 'foo 'sequence) => NIL NIL

Although this behavior is certainly inconvenient, my reading of CLtL
indicates that it's legitimate, since there's no statement of exactly
what cases SUBTYPEP is allowed to give up on.  However, this makes
SUBTYPEP pretty hard to use in a portable way.  Is there any interest
in putting together a proposal that sets out a minimum set of cases
that SUBTYPEP must be able to resolve?