anchor.diff:  % debug
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  +
  +-define(TRACE(X,Y), ok).
   %-define(TRACE(X,Y), io:format("~w: [~p] " ++ X ++ "~n", [?MODULE, self()] ++ Y)).
  --define(TRACE(X,Y), ok).
   
   %DETAIL DEBUG MESSAGES
  +-define(TRACE2(X,Y), ok).
   %-define(TRACE2(X,Y), io:format("~w: [~p] " ++ X ++ "~n", [?MODULE, self()] ++ Y)).
  --define(TRACE2(X,Y), ok).
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % type definitions
  
positive.code:                         struct = #bloom_recon_struct{ interval = BloomI}
                         }) ->
      MySyncI = find_intersection(MyI, BloomI),
      ?TRACE("GET STATE - MyI=~p ~n BloomI=~p ~n SynI=~p", [MyI, BloomI, MySyncI]),
      case intervals:is_empty(MySyncI) of
          false -> send_chunk_req(DhtPid, self(), MySyncI, MySyncI, get_max_items(bloom));
          true -> comm:send_local(self(), {shutdown, empty_interval})
      end,
      State;
  
negative.code:         end,
      EmptyRest = intervals:is_empty(RestI),
      if not EmptyRest ->
             SubSyncI = find_intersection(SyncI, RestI),
             Pid = if RMethod =:= bloom -> 
                          ForkParams = lists:keyreplace(interval, 1, Params, {interval, SubSyncI}),
                          erlang:element(2, fork_recon(State#rr_recon_state{ struct = ForkParams }));
                      true -> self()
                   end,
              send_chunk_req(DhtNodePid, Pid, find_intersection(RestI, SyncI), SubSyncI, 
                             get_max_items(RMethod));
          true -> ok
      end,
  