anchor.diff:  
   (defun sheep-hierarchy-list (sheep)
     "Returns the full hierarchy-list for SHEEP"
  -  (compute-sheep-hierarchy-list sheep))
  +  (%sheep-hierarchy-cache sheep))
   
   ;;; Inheritance predicates
   (defun parentp (maybe-parent child)
  
positive.code:            (cons sheep cache))))
      (t nil)))
  
  (defun memoize-sheep-hierarchy-list (sheep)
    (setf (%sheep-hierarchy-cache sheep) (compute-sheep-hierarchy-cache sheep))
    (%map-children 'memoize-sheep-hierarchy-list sheep))
  
  (defun std-compute-sheep-hierarchy-list (sheep)
    (%sheep-hierarchy-cache sheep))
  
  (defun compute-sheep-hierarchy-list (sheep)
    (typecase sheep
      (std-sheep (std-compute-sheep-hierarchy-list sheep))
      (otherwise (compute-sheep-hierarchy-list-using-metasheep
                  (sheep-metasheep sheep) sheep))))
  
  (defun std-finalize-sheep-inheritance (sheep)
    "Memoizes SHEEP's hierarchy list."
  
negative.code:              (awhen (find parent (the list minimal-elements) :test 'eq) (return it)))
        (return-from std-tie-breaker-rule it))))
  
  (defun std-compute-sheep-hierarchy-list (sheep)
    "Lists SHEEP's ancestors, in precedence order."
    (cond
      ((cdr (%sheep-parents sheep))
  