anchor.diff:        (root (parent node))
         node))
   
  -(defun make-node (&key parent entry) ; TODO: Useless?
  -  (make-instance 'node :parent parent :entry entry))
  +(defun make-node (&key parent entry history)
  +  (let ((node (make-instance 'node :parent parent :entry entry)))
  +    (cl-custom-hash-table:with-custom-hash-table
  +      (pushnew node (gethash (entry node) (entries history))))
  +    node))
   
   (define-class binding ()
     ((forward-child  nil
  
positive.code:              (setf (value (entry node)) data)
               (let ((maybe-new-entry (add-entry history data)))
                 (push (setf node (make-node :entry maybe-new-entry
                                             :parent (current owner)))
                       (children (current owner)))))
           (let ((binding (gethash owner (bindings (current owner)))))
             (setf (forward-child binding) node))
  
negative.code:       ((null (current owner))
         (let* ((creator-node (and creator-owner (current creator-owner)))
                (new-node (make-node :entry (add-entry history data)
                                     :parent creator-node
                                     :history history)))
           (when creator-owner
             (push new-node (children creator-node)))
           (setf (origin owner) new-node
  