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


    Date: 17 Mar 89 22:09 PST
    From: masinter.pa@Xerox.COM

    I think BIT-VECTOR might have been an omission.

    NULL was left out because it seemed silly and at odds with current practice
    to require that (TYPE-OF 'NIL) = NULL.  However, if (CLASS-OF 'NIL) is the
    special NULL class, then we would have to reconsider.

In Symbolics Genera 7.4, (TYPE-OF 'NIL) => NULL, so that's some current
practice.  88-002R mandates (SUBTYPEP (CLASS-OF 'NIL) (FIND-CLASS 'NULL)).

    SEQUENCE was left out because it is an 'abstract' class and is (as far as
    the standard is concerned) exhaustively partitioned by VECTOR and LIST
    which are already "lower bounds" of TYPE-OF.

It is not an exhaustive partition, according to CLtL p.35.  I put
SEQUENCE in so that if an implementation adds a third kind of SEQUENCE,
TYPE-OF can't be any less specific than SEQUENCE.  This is the same reason
that RATIONAL, FLOAT, and NUMBER are in.

    BIGNUM and FIXNUM were left out because their division was implementation

    KEYWORD was left out because under odd circumstances it is possible to
    dynamically change the 'type' (e.g., by UNINTERN).

    STANDARD-CHAR and STRING-CHAR were left out for the same reasons they
    aren't built-in classes.

I'll buy the above three paragraphs, although I don't think any of them
are 100% compelling.