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

Chap 3 question: Class of allocated instances.

I'm wondering why one can't count on the following being true:

   (eq (find-class 'foo)  (class-of (allocate-instance 'foo)))

Presumably, if a programmer defined a method on 'allocate-instance'
he could have it return any old sort of widget (rather than a "foo").  
Is this useful?  Is it still useful if the constraint is added that

   (subtype (class-of (allocate-instance 'foo)) 'foo)

Without some such constraint, it might be possible for 

    (typep (allocate-instance 'foo) 'foo)

to be false.    It was similar such problems that led to the
"cleanup" proposal ARRAY-TYPE-ELEMENT-TYPE-SEMANTICS -- that often
one could have the following turn out false:

    (typep (make-array <n> :element-type '(array <some-type>))
           '(array <some-type>))

-- JonL --