anchor.diff:  
   (defun memoize-sheep-hierarchy-list (sheep)
     (let ((list (compute-sheep-hierarchy-list sheep)))
  -    (setf (sheep-hierarchy-list sheep)
  +    (setf (gethash 'hierarchy-list sheep)
   	  list)
       (mapc (lambda (descendant) 
   	    (memoize-sheep-hierarchy-list (weak-pointer-value descendant)))
  -	  (sheep-direct-children sheep))))
  +	  (gethash 'children sheep))))
   
   ;;;
   ;;; Hierarchy Resolution
  
positive.code: (defparameter *secret-sheep-identifier* (gensym))
  (define-condition unbound-property (sheeple-error) ())
  
  ;;;
  ;;; Slot access
  ;;;
  (defun get-property (sheep property-name)
    (if (eql (sheep-metasheep sheep) =standard-sheep-metasheep=)
        (std-get-property sheep property-name)
  
negative.code: (defun local-precedence-ordering (sheep)
    (mapcar #'list
  	  (cons sheep
  		(butlast (gethash 'parents sheep)))
  	  (gethash 'parents sheep)))
  
  (defun std-tie-breaker-rule (minimal-elements cpl-so-far)
    (dolist (cpl-constituent (reverse cpl-so-far))
  