anchor.diff:      (setf (svref array 0) metasheep)
       array))
   
  +(defun maybe-std-allocate-sheep (metasheep)
  +  (if (eq =standard-metasheep= metasheep)
  +      (std-allocate-sheep metasheep)
  +      (allocate-sheep metasheep)))
   
   ;;; STD-SHEEP accessor definitions
   (defmacro define-internal-accessors (&body names-and-indexes)
  
positive.code:   (mapc (fun (add-parent _ sheep)) (reverse parents))
    sheep)
  
  (defun sheep-hierarchy-list (sheep)
    "Returns the full hierarchy-list for SHEEP"
    (%sheep-hierarchy-cache sheep))
  
negative.code:                      &key (metasheep =standard-metasheep=) &allow-other-keys)
    "Creates a new sheep with SHEEPLE as its parents. METASHEEP is used as the metasheep when
  allocating the new sheep object. ALL-KEYS is passed on to INIT-SHEEP."
    (apply #'init-sheep
           (add-parent* (or (ensure-list parent*) =standard-sheep=)
                        (maybe-std-allocate-sheep metasheep))
           all-keys))
  
  (defun spawn (&rest sheeple)
    "Creates a new standard-sheep object with SHEEPLE as its parents."
  