anchor.diff:           }).
   -type state() :: #ru_recon_state{}.
   
  --type build_args() :: {} | {Fpr::float()}.
   -type tree_cmp_response() :: ok_inner | ok_leaf |
                                fail_leaf | fail_node |
                                not_found.
  
positive.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec build_recon_struct(Method, DB_Chunk, Args) -> Recon_Struct when
        is_subtype(Method,       method()),
        is_subtype(DB_Chunk,     {intervals:interval(), db_as_list_enc()}),
        is_subtype(Args,         build_args()),
        is_subtype(Recon_Struct, bloom_recon_struct() | merkle_tree:merkle_tree() | art:art()).
  
  build_recon_struct(bloom, {I, DBItems}, {Fpr}) ->
      ElementNum = length(DBItems),
      HFCount = bloom:calc_HF_numEx(ElementNum, Fpr),
      Hfs = ?REP_HFS:new(HFCount),    
  
negative.code:        true -> ok
      end,
      State#ru_recon_state{ stats = FinalStats }.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec begin_sync(recon_struct(), state()) -> ru_recon_stats:stats().
  begin_sync(SyncStruct, State = #ru_recon_state{recon_method = RMethod,
                                                 recon_struct = Params,
                                                 sync_round = Round,
                                                 sync_pid = SrcPid,
                                                 dhtNodePid = DhtNodePid,
                                                 ownerRemotePid = OwnerPid,
                                                 dest_ru_pid = DestRU_Pid,                                       
                                                 sync_master = IsMaster, 
                                                 stats = Stats }) ->
       case RMethod of
           merkle_tree -> 
              case IsMaster of
                  true -> comm:send(SrcPid, 
                                    {check_node, comm:this(), 
                                     merkle_tree:get_interval(SyncStruct), 
                                     merkle_tree:get_hash(SyncStruct)});            
                  false ->comm:send(DestRU_Pid, 
                                    {request_recon, OwnerPid, Round, true, 
                                     res_shared_interval, merkle_tree,
                                     [{interval, merkle_tree:get_interval(SyncStruct)},
                                      {senderPid, comm:this()}]})
              end,
              ru_recon_stats:set(
                [{tree_compareLeft, ?IIF(IsMaster, 1, 0)},
                 {tree_size, merkle_tree:size_detail(SyncStruct)}], Stats);
           bloom when IsMaster ->
              DestKey = select_sync_node(proplists:get_value(interval, Params)),
              comm:send_local(DhtNodePid, 
                              {lookup_aux, DestKey, 0, 
                               {send_to_group_member, rep_upd, 
                                {request_recon, OwnerPid, Round, false, reconciliation, bloom, SyncStruct}}}),
              comm:send_local(self(), {shutdown, {ok, build_struct}}),
              Stats;
           art ->
              {AOk, ARStats} = case IsMaster of
                  true -> art_recon(SyncStruct, proplists:get_value(art, Params), State);                    
                  false ->
                      comm:send(DestRU_Pid, 
                                {request_recon, OwnerPid, Round, true, 
                                 res_shared_interval, art,
                                 [{interval, art:get_interval(SyncStruct)},
                                  {senderPid, comm:this()},
                                  {art, SyncStruct}]}),
                      {no, Stats}
              end,            
              comm:send_local(self(), {shutdown, ?IIF(AOk =:= ok, sync_finished, client_art_send)}),
              ARStats
      end.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % Merkle Tree specific
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  