anchor.diff:    (:use :cl)
     (:export def-proto-slots
              get-strategy add-strategy remove-strategy
  -           simple unique-merge))
  +           simple unique-merge
  +           proto-method))
   
   (in-package proto-slots)
   
  
positive.code:               val))))
  
     (when writer
       `(%proto-method ,writer (value (object ,class))
            ,(format nil "Set the object's own ~(~A~) list, NOT including those inherited from the object's ~(~A~)." (or reader slot-name) base)
          (setf (slot-value object ',slot-name) value)))
  
     (when own-finder
       `(%proto-method ,own-finder ((object ,class) query)
            ,(format nil "Find and return the first matching item in the object's own ~(~A~) list, NOT including those inherited from the object's ~(~A~). Return nil if there is no match." (or reader slot-name) base)
          (if (slot-boundp object ',slot-name)
              (find query (slot-value object ',slot-name)
  
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)
  