anchor.diff:      ?EMPTY_COMMIT.
   
   new([_|_]=Parents, Tree, Changes, Meta) 
  -  when is_list(Changes), is_bitstring(Tree), is_list(Parents), is_list(Meta) ->
  +  when is_list(Changes), is_list(Parents), is_list(Meta) ->
       OrderedParents = lists:sort(Parents),
       OrderedMeta = orddict:from_list(Meta),
       {?COMMIT_TUPLE_TAG, {OrderedParents, Tree, Changes, OrderedMeta}}.
   
   store({?COMMIT_TUPLE_TAG, {_P,_T,_C,_M}}=Commit, StoreMod) ->
  -    {SHA, _} = wallaroo_tree:hash_and_store(Commit, StoreMod, store_commit),
  +    {SHA, _} = wallaroo_db:hash_and_store(Commit, StoreMod, store_commit),
       SHA;
   store(?EMPTY_COMMIT=Commit, StoreMod) ->
  -    {SHA, _} = wallaroo_tree:hash_and_store(Commit, StoreMod, store_commit),
  +    {SHA, _} = wallaroo_db:hash_and_store(Commit, StoreMod, store_commit),
       SHA.
   
   get_meta({?COMMIT_TUPLE_TAG, {_, _, _, Meta}}, Key) ->
  
positive.code:     reachable_helper([From], StoreMod, gb_sets:empty()).
  
  reachable_helper([], _, Visited) ->
      Visited;
  reachable_helper([Hash|Hs], StoreMod, Visited) ->
      if gb_sets:is_member(Hash, Visited) ->
  	    reachable_helper(Hs, StoreMod, Visited);
         true -> 
  	    Commit = StoreMod:find_commit(Hash), 
  	    NewVisited = gb_sets:add(Hash, Visited),
  	    {ok, Parents} = get_parents(Commit),
  	    reachable_helper(append_unvisited(Parents, Hs, Visited), StoreMod, NewVisited)
      end.
  
  append_unvisited([], Acc, Visited) ->
      Acc;
  append_unvisited([H|Hs], Acc, Visited) ->
      if gb_sets:is_member(H, Visited) ->
  	    append_unvisited(Hs, Acc, Visited);
         true ->
  	    append_unvisited(Hs, [H|Acc], Visited)
      end.
  
  
negative.code: 
  get_tree({?COMMIT_TUPLE_TAG, {_, Tree, _, _}}, StoreMod) ->
      StoreMod:find_object(Tree);
  get_tree(?EMPTY_COMMIT, _) ->
      error.
  
  reachable(From, StoreMod) ->
  