[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue: TYPE-OF-UNDERCONSTRAINED, v.5
- To: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Subject: Re: Issue: TYPE-OF-UNDERCONSTRAINED, v.5
- From: masinter.pa@Xerox.COM
- Date: 17 Mar 89 22:09 PST
- Cc: email@example.com
- In-reply-to: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>'s message of Sat, 18 Mar 89 00:37 EST
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.
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.
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 like your proposed fixes to the CLASS-OF wording.
- - - - -
About part (c): the restriction on T is meaningless, since the CLASS-OF
restriction dominates it. The restriction on MEMBER is OK, just to keep
TYPE-OF from being the silly definition that (type-of x) = `(member ,x). I
think we're running out of good reasons to leave out SATISFIES, AND, OR,
NOT, and VALUES; they're probably no more useful, but we're probably
overspecifying for no good reason.
However, I'll be happy to go along with whatever you feel is right on this