anchor.diff:  
   (defun delete-node (history node)
     (cl-custom-hash-table:with-custom-hash-table
  -    (let ((accessor (gethash (entry node) (entries history))))
  -      (when accessor
  -        (alex:deletef (nodes accessor) node)))))
  +    (let ((entry (gethash (entry node) (entries history))))
  +      (when entry
  +        (alex:deletef (nodes entry) node)))))
   
   (defun delete-disowned-branch-nodes (history nodes)
     (labels ((garbage-collect (list-of-roots)
  
positive.code:       (root (parent node))
        node))
  
  (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 (nodes (gethash (entry node) (entries history)))))
      node))
  
  (define-class binding ()
  
negative.code: One case in which this function might be useful is when you want to import flat
  history data, e.g. a list of visited URLs that's not bound to any owner."
    (cl-custom-hash-table:with-custom-hash-table
      (let ((new-entry (make-entry history data last-access)))
        (multiple-value-bind (existing-entry found?)
            (gethash new-entry (entries history))
          (if found?
              (progn
                (setf (value existing-entry) data)
                (when last-access
                  (setf (last-access existing-entry) last-access))
                existing-entry)
              (progn
                (setf (gethash new-entry (entries history))
                      new-entry)
                new-entry))))))
  
  (define-class history-tree ()           ; TODO: Rename `history'?
  