anchor.diff:  
   ;;; Inheritance setup
   (defun add-parent (new-parent child)
  -  (if (and (eql =standard-sheep-metaobject= (sheep-metaobject child))
  -	   (eql =standard-sheep-metaobject= (sheep-metaobject new-parent)))
  +  (if (and (eql =standard-sheep-metasheep= (sheep-metasheep child))
  +	   (eql =standard-sheep-metasheep= (sheep-metasheep new-parent)))
         (std-add-parent new-parent child)
  -      (add-parent-using-metaobjects 
  -       (sheep-metaobject new-parent) (sheep-metaobject child)
  +      (add-parent-using-metasheeps 
  +       (sheep-metasheep new-parent) (sheep-metasheep child)
          new-parent child)))
   (defun std-add-parent (new-parent child)
     (cond ((equal new-parent child)
  
positive.code:       (append obj-keys (mapcar #'available-properties (sheep-direct-parents sheep)))))))
  
  (defun available-cloneforms (sheep)
    (if (eql (sheep-metaobject sheep) =standard-sheep-metasheep=)
        (std-available-cloneforms sheep)
        (available-cloneforms-using-metasheep (sheep-metasheep sheep) sheep)))
  (defun std-available-cloneforms (sheep)
  
negative.code:        (values sheep nil)))
  
  ;;;
  ;;; Now we create the buzzword, message, and role metasheeps
  ;;;
  (defvar =standard-buzzword-metasheep=
    (eval the-standard-buzzword-metasheep-form))
  (defvar =standard-message-metasheep=
    (eval the-standard-message-metasheep-form))
  (defvar =standard-role-metasheep=
    (eval the-standard-role-metasheep-form))
  
  ;;;
  ;;; Safe to define buzzwords and messages now, as well as use CLONE normally
  ;;;
  (defbuzzword sheep-p-using-sheep)
  (defmessage sheep-p-using-sheep (sheep)
    (std-sheep-object-p sheep))
  
  (defbuzzword print-sheep
      (:documentation "Defines the expression print-object uses."))
  