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

Common Lisp Types

When I feel conservative, I agree with Larry's message. When I want
to stir up the CL community, I disagree.  His message is well-reasoned
and it probably makes sense to simply adopt his stance. However, let's
consider stirring up the hornets:

Larry writes:

``[we should eliminate] types where the "type" of an object can change
without going through the change-class protocol, e.g., satisfies. Keyword
is here because it is not an error to change a keyword's home package.''

The people writing code that distinguishes keywords from other things
and that can break if objects change classes `unexpectedly'
consider themselves wizards. I don't care about their bugs.

Larry remarks that the range of FUNCTION could be weird. My desire
to have CLOS specify some better treatment of functions is partially
a desire to humiliate the CL crowd into wanting to fix functions.

Larry writes:

``In RPG's proposal, without a corresponding change to CL, you could get
back from (function (lambda ...)) a list (lambda ...) for which class-of would
return the class LIST, which is not a sub-class of function.''

You bet, and I would think users would start to lobby against a
CL that did that. Make 'em sweat!

Larry writes:

``Also ommitted is the type standard-char, which is a fairly arbitrary
subset of characters.''

Even though they are arbitrary, some people might want to write portable
but system-dependent code that reasons about such arbitrary decisions.