anchor.diff:                            (list (read *query-io*)))
              value))))
   
  -(defun direct-property-p (object property-name)
  +(defmopfun 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:direct-property-p (object property-name)
     (handler-case (progn (direct-property-value object property-name) t)
       (unbound-property () nil)))
   
  -(defun property-makunbound (object property-name)
  +(defmopfun property-makunbound (object property-name)
     "Removes OBJECT's direct property named PROPERTY-NAME. Signals an error if there is no such
   direct property. Returns OBJECT."
  -  (if (std-object-p object)
  -      (std-sheeple:property-makunbound object property-name)
  -      (smop:property-makunbound (object-metaobject object) object property-name)))
  -(defun std-sheeple:property-makunbound (object property-name)
     (if (direct-property-p object property-name)
         (prog1 object
           (change-mold object
  
positive.code: (defun property-position (property-name object)
    (position property-name (mold-properties (%object-mold object))))
  
  ;;;
  ;;; Property Metaobjects
  ;;;
  
negative.code:   (warn 'deprecated-feature :feature #'remove-property :version "3.0.2")
    (property-makunbound object property-name))
  
  (defmopfun remove-all-direct-properties (object)
    "Wipes out all direct properties and their values from OBJECT."
    (change-mold object (ensure-mold (object-parents object) #()))
    object)
  
  ;;;
  ;;; Value
  ;;;
  (defmopfun 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."
    (check-type property-name symbol)
    (dolist (ancestor (object-hierarchy-list object)
             (error 'unbound-property :object object :property-name property-name))
  