anchor.diff:  
   filter_stream_leaf(Stream) ->
       gen_server:call(?MODULE, {filter_stream_leaf, Stream}, infinity).
  +
  +new_treefile(File) ->
  +    gen_server:call(?MODULE, {new_treefile, File}, infinity).
  +
  +new_groupsfile(File) ->
  +    gen_server:call(?MODULE, {new_groupsfile, File}, infinity).
  +
  +set_treedict(Dict, NLeaves) ->
  +    gen_server:call(?MODULE, {set_treedict, Dict, NLeaves}, infinity).
  +
  +set_groupsdict(Dict) ->
  +    gen_server:call(?MODULE, {set_groupsdict, Dict}, infinity).
  +    
       
   init([]) ->
       {ok, GroupsFile} = file:open(?GROUPSFILE, [read]),
  
positive.code:          new_node/2,
           set_myid/1,
           filter_stream_leaf/1,
           do_replicate/1]).
  
  -record(state, {groups,
  
negative.code:     end,
      file:close(TreeFile).
  
  path_from_tree_dict_test() ->
      P1 = dict:store(0,[-1,1,2,3,-1],dict:new()),
      P2 = dict:store(1,[4,-1,5,6,-1],P1),
      P3 = dict:store(2,[7,8,-1,-1,9],P2),
      P4 = dict:store(3,[10,11,-1,-1,12],P3),
      P5 = dict:store(4,[-1,-1,13,14,-1],P4),
      Paths = path_from_tree_dict(P5, 3),
      ?assertEqual(2,length(dict:fetch_keys(Paths))),
      ?assertEqual([0,1,4],dict:fetch(3, Paths)),
      ?assertEqual([2,3],dict:fetch(4, Paths)).
  
  is_leaf_test() ->
      ?assertEqual(true, is_leaf(3, 4)),
      ?assertEqual(false, is_leaf(4, 4)).
  