anchor.diff:          slot-defs)))
   
   
  -(defmacro %proto-method (name args docs &body body)
  +(defmacro proto-method (name args docs &body body)
     "Define a generic function if it doesn't already exist, then define
     a method on that generic function. name is the function/method name.
     args are the method args, possibly including specializers. docs is
  
positive.code:               val))))
  
     (when writer
       `(%proto-method ,writer (value (object ,class))
            ,(format nil "Set the object's own ~(~A~)."
                     (or reader slot-name))
          (setf (slot-value object ',slot-name) value)))))
  
negative.code:    'progn
  
     (when own-reader
       `(proto-method ,own-reader ((object ,class))
            ,(format nil "Return the object's own ~(~A~) list, NOT including those inherited from the object's ~(~A~)." (or reader slot-name) base)
          (slot-value object ',slot-name)))
  
     (when reader
       `(proto-method ,reader ((object ,class))
            ,(format nil "Return the object's ~(~A~) list, including any inherited from the object's ~(~A~)." (or reader slot-name) base)
          (let ((b (,base object))
                (val (and (slot-boundp object ',slot-name)
  