anchor.diff:  (export-always 'depth)
   (declaim (ftype (function (history-tree) non-negative-integer) depth))
   (defun depth (history)
  -  "Return the number of parents of the current owner node."
  +  "Return the number of (possibly unowned) parents of the current owner node."
     (length (all-parents history)))
   
   (export-always 'size)
  
positive.code:   (:accessor-name-transformer #'class*:name-identity)
    (:documentation "Wrapped data as stored in `history-tree''s `entries'."))
  
  (defun make-entry (history data)        ; Flet in `add-entry'?
    "Return an `entry' wrapping DATA and suitable for HISTORY."
    (make-instance 'entry :value data
                          :key (key history)
  
negative.code: `history-tree''s `key' and `test' functions may identify two non-identical datum
  as equal).
  
  If DATA is found among the children, the current owner node `forward-child' is
  set to the matching child, the child data is set to DATA and the owner current
  node is set to this child.
  
  If there is no current node, this creates the `origin' node of the current owner
  and also sets `current' to it.  If CREATOR is provided, set the `creator' slot
  of current owner and the `origin' parent is set to the current node of
  `creator'."
    (let ((owner (current-owner history)))
      (cond
        ((null (current owner))
  