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 ((tree (htree:make)))
  +  (let ((history (htree:make)))
       (dolist (url '("http://example.root"
                      "http://example.root/R"
                      "http://example.root/R1"
                      "http://example.root/R2"))
  -      (htree:add-child url tree))
  -    (htree:add-owner tree "parent-owner")
  -    (htree:set-current-owner tree "parent-owner")
  -    (htree:add-child "http://parent/A" tree)
  -    (htree:add-child "http://parent/A1" tree)
  -    (htree:back tree)
  -    (htree:add-child "http://parent-child/A2" tree)
  -
  -    (htree:add-owner tree "child-owner" :creator-identifier "parent-owner")
  -    (htree:set-current-owner tree "child-owner")
  -    (htree:add-child "http://child/A3a" tree)
  -    (htree:back tree)
  -    (htree:add-child "http://child/A3b" tree)
  -
  -    (prove:is (length (htree:nodes (htree:owner tree "parent-owner")))
  +      (htree:add-child url history))
  +    (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:back history)
  +    (htree:add-child "http://parent-child/A2" history)
  +
  +    (htree:add-owner history "child-owner" :creator-identifier "parent-owner")
  +    (htree:set-current-owner history "child-owner")
  +    (htree:add-child "http://child/A3a" history)
  +    (htree:back history)
  +    (htree:add-child "http://child/A3b" history)
  +
  +    (prove:is (length (htree:nodes (htree:owner history "parent-owner")))
                 3)
  -    (prove:is (length (htree:all-current-branch-nodes tree))
  +    (prove:is (length (htree:all-current-branch-nodes history))
                 5)
  -    (prove:is (length (htree:nodes (htree:owner tree htree:+default-owner+)))
  +    (prove:is (length (htree:nodes (htree:owner history htree:+default-owner+)))
                 4)
   
  -    (htree:delete-owner tree "child-owner")
  -
  -    (prove:isnt (htree:current-owner-identifier tree)
  +    (htree:delete-owner history "child-owner")
  +
  +    (prove:isnt (htree:current-owner-identifier history)
                   "child-owner")
  -    (prove:is (htree:owner tree "child-owner")
  +    (prove:is (htree:owner history "child-owner")
                 nil)
  -    (prove:is (length (htree:nodes (htree:owner tree "parent-owner")))
  +    (prove:is (length (htree:nodes (htree:owner history "parent-owner")))
                 3)
  -    (htree:set-current-owner tree "parent-owner")
  -    (prove:is (length (htree:all-current-branch-nodes tree))
  +    (htree:set-current-owner history "parent-owner")
  +    (prove:is (length (htree:all-current-branch-nodes history))
                 5)
  -    (prove:is (length (htree:nodes (htree:owner tree htree:+default-owner+)))
  +    (prove:is (length (htree:nodes (htree:owner history htree:+default-owner+)))
                 4)
   
       (dolist (url-owner (list '("http://parent/A" "parent-owner")
  
positive.code: 
  (prove:subtest "Traverse parents."
    (prove:is (htree:all-parents-data
               (htree:back (make-tree1)))
              '("http://example.root")))
  
  (prove:subtest "Traverse forward children."
    (prove:is (htree:all-forward-children-data
               (htree:back (make-tree1)))
              '("http://example.root/B2")))
  
  (prove:subtest "Traverse all children."
    (prove:is (htree:all-children-data
               (htree:back (make-tree1)))
              '("http://example.root/B2" "http://example.root/B1")))
  
  (prove:subtest "Move node to forward-child on add."
    (let ((tree (make-tree2)))
      (prove:is (htree:value (htree:current-owner-node tree))
                "http://example.root/B")
      (htree:back tree)
      (prove:is (htree:value (htree:current-owner-node tree))
                "http://example.root")
      (htree:add-child "http://example.root/A" tree)
      (prove:is (htree:value (htree:current-owner-node tree))
                "http://example.root/A")))
  
  (define-class web-page ()
  
negative.code:                              '("http://child/A3a" nil)
                               '("http://child/A3b" nil)))
        (prove:is (alexandria:hash-table-keys
                   (htree:bindings (first (htree:find-nodes history (first url-owner)))))
                  (if (second url-owner)
                      (list (htree:owner history (second url-owner)))
                      nil)))
  
      (htree:delete-owner history "parent-owner")
      (prove:is (htree:current-owner-identifier history)
                htree:+default-owner+)
      (prove:is (htree:owner history "parent-owner")
                nil)
      (prove:is (hash-table-count (htree:entries history))
                9)
  
      (maphash (lambda (entry nodes)
  