anchor.diff:  ;;; Bootstrap
   ;;;
   
  -;;; These two help set up all the initial cloneform/clonefunction pairs.
  -(defun set-up-standard-sheep-metasheep-cloneforms (cloneform-table)
  -  (setf (gethash 'metasheep cloneform-table) '=standard-sheep-metasheep=)
  -  (setf (gethash 'nickname cloneform-table) 'nil)
  -  (setf (gethash 'parents cloneform-table) 'nil)
  -  (setf (gethash 'children cloneform-table) 'nil)
  -  (setf (gethash 'properties cloneform-table) '(make-hash-table :test #'equal))
  -  (setf (gethash 'property-owners cloneform-table) '(make-weak-hash-table :weakness :value :test #'equal))
  -  (setf (gethash 'roles cloneform-table) 'nil)
  -  (setf (gethash 'hierarchy-list cloneform-table) 'nil)
  -  (setf (gethash 'cloneforms cloneform-table) '(make-hash-table :test #'equal))
  -  (setf (gethash 'clonefunctions cloneform-table) '(make-hash-table :test #'equal)))
  -
  -(defun set-up-standard-sheep-metasheep-clonefunctions (clonefun-table)
  -  (setf (gethash 'metasheep clonefun-table) (lambda () =standard-sheep-metasheep=))
  -  (setf (gethash 'nickname clonefun-table) (lambda () nil))
  -  (setf (gethash 'parents clonefun-table) (lambda () nil))
  -  (setf (gethash 'children clonefun-table) (lambda () nil))
  -  (setf (gethash 'properties clonefun-table) (lambda () (make-hash-table :test #'equal)))
  -  (setf (gethash 'property-owners clonefun-table) (lambda () (make-weak-hash-table :weakness :value :test #'equal)))
  -  (setf (gethash 'roles clonefun-table) (lambda () nil))
  -  (setf (gethash 'hierarchy-list clonefun-table) (lambda () nil))
  -  (setf (gethash 'cloneforms clonefun-table) (lambda () (make-hash-table :test #'equal)))
  -  (setf (gethash 'clonefunctions clonefun-table) (lambda () (make-hash-table :test #'equal))))
  +;; These are what reinitializing metasheep is for...
  +;; (defun set-up-standard-sheep-metasheep-cloneforms (cloneform-table)
  +;;   (setf (gethash 'metasheep cloneform-table) '=standard-sheep-metasheep=)
  +;;   (setf (gethash 'nickname cloneform-table) 'nil)
  +;;   (setf (gethash 'parents cloneform-table) 'nil)
  +;;   (setf (gethash 'children cloneform-table) 'nil)
  +;;   (setf (gethash 'properties cloneform-table) '(make-hash-table :test #'equal))
  +;;   (setf (gethash 'property-owners cloneform-table) '(make-weak-hash-table :weakness :value :test #'equal))
  +;;   (setf (gethash 'roles cloneform-table) 'nil)
  +;;   (setf (gethash 'hierarchy-list cloneform-table) 'nil)
  +;;   (setf (gethash 'cloneforms cloneform-table) '(make-hash-table :test #'equal))
  +;;   (setf (gethash 'clonefunctions cloneform-table) '(make-hash-table :test #'equal)))
  +
  +;; (defun set-up-standard-sheep-metasheep-clonefunctions (clonefun-table)
  +;;   (setf (gethash 'metasheep clonefun-table) (lambda () =standard-sheep-metasheep=))
  +;;   (setf (gethash 'nickname clonefun-table) (lambda () nil))
  +;;   (setf (gethash 'parents clonefun-table) (lambda () nil))
  +;;   (setf (gethash 'children clonefun-table) (lambda () nil))
  +;;   (setf (gethash 'properties clonefun-table) (lambda () (make-hash-table :test #'equal)))
  +;;   (setf (gethash 'property-owners clonefun-table) (lambda () (make-weak-hash-table :weakness :value :test #'equal)))
  +;;   (setf (gethash 'roles clonefun-table) (lambda () nil))
  +;;   (setf (gethash 'hierarchy-list clonefun-table) (lambda () nil))
  +;;   (setf (gethash 'cloneforms clonefun-table) (lambda () (make-hash-table :test #'equal)))
  +;;   (setf (gethash 'clonefunctions clonefun-table) (lambda () (make-hash-table :test #'equal))))
   
   (defvar =standard-sheep-metasheep=
     (let ((object (make-hash-table :test #'equal)))
  
positive.code:       (std-remove-property sheep property-name)
        (remove-property-using-metasheep (sheep-metasheep sheep) sheep property-name)))
  (defun std-remove-property (sheep property-name)
    (remhash property-name (sheep-direct-propertes sheep)))
  
  (defun has-property-p (sheep property-name)
    "Returns T if a property with PROPERTY-NAME is available to SHEEP."
  
negative.code: 
  ;; This bitch
  (defun get-property-with-memoized-owner (sheep property-name)
    ;; Find who the owner is...
    (multiple-value-bind (prop-owner has-p)
        (gethash property-name (gethash 'property-owners sheep))
      (if has-p
  	;; Get the actual value from that owner..
  	(multiple-value-bind (value has-p)
  	    (gethash property-name (gethash 'properties prop-owner))
  	  (if has-p
  	      value
  	      (error 'unbound-property)))
  