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


Well, I've gotten well enough now that I can contemplate some serious
work on CLOS during the next 2 weeks.

Here are some comments on the recent written response mail:

On GENERIC-FUNCTION special form:

It's true I proposed it to be a special form. I did that so it
would be parallel to FUNCTION. I had even imagined some #<mumble>
reader macro for it. Unlike FUNCTION, GENERIC-FUNCTION can be a macro
for MAKE-INSTANCE.  In Qlisp we have a macro called QLAMBDA which is
like LAMBDA except it cannot be used inside FUNCTION etc.  It turns out
to be a drag because the differences between how you can use QLAMBDA
and how you can use LAMBDA seem gratuitous. Similarly, I thought that
folks would prefer to see GENERIC-FUNCTION be as similar to FUNCTION as

GENERIC-FUNCTION as a macro can efunctuate what it needs to inside the
#'lambda's that appear inside the method-forming part of the expansion of
the macro. I can imagine people making mistakes the first time they write
this macro.

On the :type slot option:

As you all recall, my original writeup of this option stated that
attempting to store an invalid type SHOULD signal an error. Moon objected
on the grounds that he did not want to have to ever check it, except when
other operations would naturally check the contents (such as during an

Thus, I never saw this as a compiler pragma only but as a semantic issue.
I would favor a redux to my original wording (yes, ``redux'' is the word I

On the name SYMBOL-CLASS:

I would be more upset with this name if SYMBOL-CLASS were a generic function.

On the setf function section:

I believe that if the next draft is really the X3J13 draft, we should not
include this section either as a section or an appendix. There is enough
of a statement within the rest of Chapters 1 & 2 that setf functions are
assumed that I doubt there is any chance that our intention that they be
adopted somehow gets lost.


This is a good idea, so good that I had mistakenly thought
CALL-NEXT-METHOD invoked NO-APPLICABLE-METHOD in this case already.


I have no opinion.