anchor.diff:     (prototype :accessor prototype :initform nil :initarg :prototype)))
   
   (defgeneric prop (hash key)
  -  (:method (hash key) (declare (ignore hash key)) (error "no properties")))
  +  (:method (hash key) (declare (ignore hash key)) :undefined))
   
   (defun find-property (hash key &optional default)
     (multiple-value-bind (val exists)
  
positive.code: 
  ;;; sub: similar to prop, but key is not necessary a symbol
  (defgeneric sub (hash key)
    (:method (hash key) (declare (ignore hash key)) (error "no properties")))
  
  (defun normalize-key (key)
    (or (and (numberp key) (->sym (format nil "~A" key)))
  
negative.code:     (prop hash key)))
  
  (defgeneric (setf sub) (val hash key)
    (:method (val hash key) (declare (ignore hash key)) val))
  
  (defmethod (setf sub) (val (hash native-hash) key)
    (let ((key (normalize-key key)))
  