anchor.diff:  ;; 2. Remove 2nd owner.  Test if all these nodes got garbage collected, but not
   ;; the default branch nodes.
   (prove:subtest "Owner deletion"
  -  (let ((history (htree:make)))
  +  (let ((history (make)))
       (dolist (url '("http://example.root"
                      "http://example.root/R"
                      "http://example.root/R1"
                      "http://example.root/R2"))
  -      (htree:add-child url history))
  +      (htree:add-child url history *owner*))
       (htree:add-owner history "parent-owner")
  -    (htree:set-current-owner history "parent-owner")
  -    (htree:add-child "http://parent/A" history)
  -    (htree:add-child "http://parent/A1" history)
  -    (htree:backward history)
  -    (htree:add-child "http://parent-child/A2" history)
  +    (htree:add-child "http://parent/A" history "parent-owner")
  +    (htree:add-child "http://parent/A1" history "parent-owner")
  +    (htree:backward history "parent-owner")
  +    (htree:add-child "http://parent-child/A2" history "parent-owner")
   
       (htree:add-owner history "child-owner" :creator-id "parent-owner")
  -    (htree:set-current-owner history "child-owner")
  -    (htree:add-child "http://child/A3a" history)
  -    (htree:backward history)
  -    (htree:add-child "http://child/A3b" history)
  +    (htree:add-child "http://child/A3a" history "child-owner")
  +    (htree:backward history "child-owner")
  +    (htree:add-child "http://child/A3b" history "child-owner")
   
       (prove:is (length (htree:nodes (htree:owner history "parent-owner")))
                 3)
  -    (prove:is (length (htree:all-current-branch-nodes history))
  +    (prove:is (length (htree:all-branch-nodes history "child-owner"))
                 5)
  -    (prove:is (length (htree:nodes (htree:owner history htree:+default-owner+)))
  +    (prove:is (length (htree:nodes (htree:owner history *owner*)))
                 4)
   
       (htree:delete-owner history "child-owner")
   
  -    (prove:isnt (htree:current-owner-id history)
  -                "child-owner")
       (prove:is (htree:owner history "child-owner")
                 nil)
       (prove:is (length (htree:nodes (htree:owner history "parent-owner")))
                 3)
  -    (htree:set-current-owner history "parent-owner")
  -    (prove:is (length (htree:all-current-branch-nodes history))
  +    (prove:is (length (htree:all-branch-nodes history "parent-owner"))
                 5)
  -    (prove:is (length (htree:nodes (htree:owner history htree:+default-owner+)))
  +    (prove:is (length (htree:nodes (htree:owner history *owner*)))
                 4)
   
       (dolist (url-owner (list '("http://parent/A" "parent-owner")
  
positive.code: 
  (prove:subtest "Visit all nodes until distant node"
    (let* ((history (make-history1))
           (creator (htree:current-owner-id history))
           (distant-node-value "http://example.root/A1")
           (distant-node (first (htree:find-nodes history distant-node-value))))
      (htree:add-owner history "b" :creator-id creator)
      (htree:set-current-owner history "b")
      (htree:add-child "b-data" history)
  
      (htree:visit-all history distant-node)
  
      (prove:is (htree:data (htree:current-owner-node history))
                distant-node-value)
      (prove:is (sort (mapcar #'htree:data (htree:nodes (htree:owner history "b")))
                      #'string<)
  
negative.code: 
  (prove:subtest "Traverse all history."
    (prove:is (htree::map-data (htree:all-contiguous-owned-nodes
                                (htree:backward (make-history1) *owner*)
                                *owner*))
              '("http://example.root"
                "http://example.root/B"
                "http://example.root/B2" "http://example.root/B1"
  