# Re: Amendments requiring additional writing

• To: Moon@STONY-BROOK.SCRC.Symbolics.COM
• Subject: Re: Amendments requiring additional writing
• From: Danny Bobrow <Bobrow.pa@Xerox.COM>
• Date: 1 Oct 87 08:35 PDT
• Cc: Common-Lisp-Object-System@SAIL.STANFORD.EDU
• In-reply-to: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>'s message of Wed, 30 Sep 87 23:45 EDT
• Sender: Bobrow.pa@Xerox.COM

I mostly agree.  I notice consturctors still in there, although that is
not yet agreed to. But the oner serious remaining problem is in the
wording of the last paragraph (not a new one):
The \CLOS\ guarantees that {\bf defclass} can be used to change
the definition of an existing class that was previously defined by
{\bf defclass} as long as the {\bf :metaclass} option is not used
in either the old or the new definition.  Whether {\bf defclass} is
allowed to change the metaclass and whether redefining a class
causes existing instances to be updated is up to the implementor of
the particular metaclass.  The \CLOS\ Meta-Object Protocol'' will
describe how to control this.

The problem is that defclass without a metaclass option can be used with
class-for-redefinition to keep the class other than standard-class.  I
would prefer to say:

The \CLOS\ guarantees that the user can change
the definition of an existing class that is a standard-class,
and cause its instances to be updated.
Whether redefining a class that is not a standard-class
causes existing instances to be updated is up to the implementor of
the particular metaclass.  The \CLOS\ Meta-Object Protocol'' will
describe how to control this.