anchor.diff:      (handler-bind ((unbound-property (fun (go :next))))
         (return (direct-property-value ancestor property-name)))
       :next))
  -(defun property-value (object property-name)
  -  "Returns the property-value for PROPERTY-NAME found first in OBJECT's hierarchy list.
  -If the value does not exist in the hierarchy list, a condition of type `unbound-property'
  -is signaled."
  -  (if (std-object-p object)
  -      (std-sheeple:property-value object property-name)
  -      (smop:property-value (object-metaobject object) object property-name)))
  -
  +
  +(defun (setf property-value) (new-value object property-name &rest options)
  +  (if (std-object-p object)
  +      (apply #'(setf std-sheeple:property-value) new-value object property-name options)
  +      (apply #'(setf smop:property-value) new-value
  +             (object-metaobject object) object property-name options)))
   (defun (setf std-sheeple:property-value) (new-value object property-name
                                             &key (reader nil readerp) (writer nil writerp) accessor)
     "Sets NEW-VALUE as the value of a direct-property belonging to OBJECT, named
  
positive.code:                           (format *query-io* "~&Value to use: ")
                            (list (read *query-io*)))
             value))))
  (defun direct-property-value (object property-name)
    "Returns the property-value set locally in OBJECT for PROPERTY-NAME. If the
  property is not set locally, a condition of type `unbound-property' is signaled."
    (if (std-object-p object)
        (std-sheeple:direct-property-value object property-name)
        (smop:direct-property-value (object-metaobject object) property-name)))
  
  (defun std-sheeple:direct-property-p (object property-name)
    (handler-case (progn (direct-property-value object property-name) t)
      (unbound-property () nil)))
  (defun direct-property-p (object property-name)
    "Returns T if OBJECT has a property called PROPERTY-NAME as a direct property.
  NIL otherwise."
    (if (std-object-p object)
        (std-sheeple:direct-property-p object property-name)
        (smop:direct-property-p (object-metaobject object) object property-name)))
  
  (defun std-sheeple:property-makunbound (object property-name)
    (if (direct-property-p object property-name)
        (prog1 object
  
negative.code:                                   (remove property-name
                                            (mold-properties (%object-mold object))))))
        (error 'unbound-property :object object :property-name property-name)))
  
  (defun remove-property (object property-name)
    "Removes OBJECT's direct property named PROPERTY-NAME. Signals an error if there is no such
  