anchor.diff:  	    (%get-property-object sheep property-name)
   	  (when has-p
   	    (return-from get-property-with-hierarchy-list (%value prop-obj))))
  +     finally (error 'unbound-property)))
  +
  +(defun get-property-owner-with-hierarchy-list (list property-name)
  +  (loop for sheep in list
  +     do (multiple-value-bind (prop-obj has-p)
  +	    (%get-property-object sheep property-name)
  +	  (declare (ignore prop-obj))
  +	  (when has-p
  +	    (return-from get-property-owner-with-hierarchy-list sheep)))
        finally (error 'unbound-property)))
   
   (defgeneric (setf get-property) (new-value sheep property-name)
  
positive.code: 	      (setf (get-property child property-name) value)))))
    child)
  
  ;;; Inheritance-related predicates
  (defun direct-parent-p (maybe-parent child)
    (when (member maybe-parent (sheep-direct-parents child))
  
negative.code: 							  (sheep-direct-children new-parent))))))
  	       (compute-sheep-hierarchy-list child)
  	       (mapc #'compute-sheep-hierarchy-list (sheep-direct-children child))
  	       (memoize-property-access child)
  	       child)
  	   (sheep-hierarchy-error ()
  	     (progn
  