anchor.diff:      (setf (gethash owner-identifier owners) initial-owner)
       (make-instance 'history-tree :entry-key entry-key
                                    :owners owners
  -                                 :current-owner initial-owner)))
  +                                 :current-owner-identifier owner-identifier)))
   
   (export-always 'owner)
   (declaim (ftype (function (history-tree t) (or null owner)) owner))
  
positive.code:     (unless owner
        (setf owner
              (setf (gethash owner-identifier (owners history)) (make-instance 'owner))))
      (setf (slot-value history 'current-owner) owner)))
  
  (export-always 'current-owner-node)
  ;; (declaim (ftype (function (history-tree) (or null node)) current-owner-node)) ; TODO: Fix type.
  (defun current-owner-node (history)
    (when (current-owner history)
      (current (the owner (current-owner history)))))
  
  ;; TODO: Add `gethash*' to set default value when not found?
  
  
negative.code:            :type hash-table
             :documentation "The key is an owner identifier (an artitrary balue),
  the value is an `owner'.")
     (current-owner-identifier (error "Owner identifier required")
                    :reader current-owner-identifier
                    :type t
                    :documentation "Must be one of the `owners' keys.")
     (entries (make-entry-hash-table)
              :type hash-table
              :documentation "The key is an `entry', the value is the list of
  