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

Re: standard-type-classes

I think that the minimum standard for having a class is that

a) all instances of the class (or any subclass) can be identified as
being of that type.  FUNCTION has a problem in that respect wrt lists.  

b) all instances have to support a well defined ordering on any two
classes of which it is a subtype.  ATOM cannot be a class i.e. which is
more specific a STREAM or ATOM  (unless of course we install ATOM above
all user defined types etc.).  

c) The class of any instance should be quickly determinable.  Thus
standard-char might be a case which is outlawed since it is a char that
is member of a set.  Probably bit (represented by an integer that is
either 1 or 0) also falls in this category.

Question.  Should the same object have the same class (with the same
name) in all standard Common Lisp systems?  What do we do about the
float set which has several different classes that may be collapsed.
This seems like a reason to omit (some) implementation dependent

NIL seems like a good name for the bottom of the class lattice, but if
CLASS-NAME can return NIL for unnamed classes, then NIL isn't such a
good name (too bad though).  How about BOTTOM, or NOT-T, or EMPTY?