anchor.diff:     'progn
   
      (when own-reader
  -     `(%proto-method ,own-reader ((object ,class))
  +     `(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))
  +     `(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)
  
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:   (:use :cl)
    (:export def-proto-slots
             get-strategy add-strategy remove-strategy
             simple unique-merge
             proto-method))
  
  (in-package proto-slots)
  
  