Path: utzoo!utgpu!watmath!clyde!att!rutgers!rochester!pt.cs.cmu.edu!a.gp.cs.cmu.edu!ccm
From: ccm@a.gp.cs.cmu.edu (Christopher McConnell)
Newsgroups: comp.lang.lisp
Subject: Re: SETF methods
Message-ID: <3773@pt.cs.cmu.edu>
Date: 6 Dec 88 03:36:42 GMT
References: <613@cnetlu.UUCP> <3761@pt.cs.cmu.edu> <32895@think.UUCP>
Organization: Carnegie-Mellon University, CS/RI
Lines: 25
In-reply-to: barmar@think.COM's message of 5 Dec 88 17:24:52 GMT

I can only assume that you did not read my original post:

>The CLOS spec is specifying how to define setf methods (as in CLOS
>methods with specializers) not the normal CL setf methods.  So, you
>have to say (defmethod (setf woof) (value (object blah))).  You use
>define-setf-method to define normal setf methods.

I stand by it.  In the AAAI-88 copy of the CLOS specification:

(defmethod (SETF WOOF) (value (object blah))
  ...body)

is the defined way to define a setf method that is executed for 
(setf (woof object) value).  The parameter was moved to the begining
to allow &rest to capture a list of reference args.  You can also
write specializers for the value as well.

The comment about define-setf-method was meant to apply to the
question of how you would define a setf function for a NORMAL LISP
function, not a CLOS generic function.  (Since he was trying to use
DEFUN with the CLOS syntax, I assumed he was trying to apply the CLOS
syntax to the problem of a normal setf function.)

I agree that (function (SETF WOOF)) should return the setf function
and should be allowed in CL.
--