anchor.diff:  
   (defun std-tie-breaker-rule (minimal-elements cpl-so-far)
     (dolist (cpl-constituent (reverse cpl-so-far))
  -    (let* ((supers (sheep-direct-parents cpl-constituent))
  +    (let* ((supers (gethash 'parents cpl-constituent))
              (common (intersection minimal-elements supers)))
         (when (not (null common))
           (return-from std-tie-breaker-rule (car common))))))
  
positive.code:       (who-sets-using-metasheep (sheep-metasheep sheep) sheep property-name)))
  (defun std-who-sets (sheep property-name)
    (multiple-value-bind (owner has-p)
        (gethash property-name (sheep-property-owners sheep))
      (if has-p
  	owner
  	(error 'unbound-property))))
  
negative.code: (defun %get-property-owner (sheep property-name)
    (let ((hierarchy-list (gethash 'hierarchy-list sheep)))
      (loop for sheep-obj in hierarchy-list
         do (multiple-value-bind (value has-p)
  	      (gethash property-name sheep-obj)
  	    (declare (ignore value))
  	    (when has-p
  	      (return-from %get-property-owner sheep-obj))) 
         finally (error 'unbound-property))))
  
  (defun memoize-sheep-hierarchy-list (sheep)
  