anchor.diff:  	    ok
       end.
   
  -test_store(Hash, Object) ->
  +ets_db_store(Hash, Object) ->
       case ets:lookup(test_wallaroo_tree, Hash) of
   	[] ->
   	    ets:insert(test_wallaroo_tree, {Hash, Object}),
  
positive.code: 	    hash_and_store(NewTree, StoreFunc)
      end.
  
  whatis(X) ->
      test_store(bogus, X).
  
  get(Key, Tree) ->
      gb_trees:lookup(Key, Tree).
  
  has(Key, Tree) ->
      gb_trees:is_defined(Key, Tree).
  
  test_init() ->
      case ets:info(test_wallaroo_tree) of
  	undefined ->
  	    ets:new(test_wallaroo_tree, [public, named_table]),
  
negative.code: 	    gb_trees:update(Key, Val, Tree)
  	end.
  
  get(Key, Tree) ->
      gb_trees:lookup(Key, Tree).
  
  has(Key, Tree) ->
      gb_trees:is_defined(Key, Tree).
  
  
  hash_and_store(Object, StoreFunc) ->
      SHA = wallaroo_hash:as_bitstring(Object),
      StoreFunc(SHA, Object),
      {SHA, Object}.
  
  
  get_path([], BS, FindFunc) when is_binary(BS) ->
      FindFunc(BS);
  get_path([], Obj, _) ->
      Obj;
  get_path([P|Rest], Tree, FindFunc) ->
      case get(P, Tree) of
  	none ->
  	    none;
  	{value, ElementHash} ->
  	    Branch = FindFunc(ElementHash),
  	    get_path(Rest, Branch, FindFunc)
      end.
      
  
  put_tree(Tree, StoreFunc) ->
      hash_and_store(Tree, StoreFunc).
  
  put_path([P], BS, Tree, StoreFunc, _FindFunc) when is_binary(BS) ->
      NewTree = put(P, BS, Tree),
  