anchor.diff:    (handler-bind ((unbound-property 'continue))
       (setf (property-value x 'documentation) new-value)))
   
  -;;; Nicknames
   (defun object-nickname (object)
     "Returns OBJECT's nickname"
     (property-value object 'nickname))
  
positive.code:   (handler-bind ((unbound-property 'continue))
      (setf (property-value object 'nickname) new-nickname)))
  
  ;;; Reflection API
  (defun property-owner (object property-name &optional errorp)
    "Returns the object object with a direct-property called PROPERTY-NAME from which OBJECT inherits
  its value. If ERRORP is T, an error is signaled if the property is unbound. Otherwise, NIL is
  
negative.code:                   (mapcar (fun (list  _ (property-value object _) (property-owner object _)))
                            (available-properties object)))))
  
  ;;;
  ;;; Convenience
  ;;;
  (defmacro with-properties (properties object &body body)
    (let ((sh (gensym)))
      `(let ((,sh ,object))
  