anchor.diff:  
   -type db_entry_enc()   :: binary().
   -type db_chunk_enc()   :: [db_entry_enc()].
  --type db_entry()       :: {?RT:key(), db_dht:version()}.
  --type db_chunk()       :: [db_entry()].
  +-type db_chunk()       :: [{?RT:key(), db_dht:version()}].
   
   -record(bloom_recon_struct,
           {
  
positive.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec build_struct(DBList::db_chunk_enc(), DestI::I, RestI::I, state()) -> state() | kill
            when is_subtype(I, intervals:interval()).
  build_struct(DBList, DestI, RestI,
               State = #rr_recon_state{method = RMethod, struct = Params,
                                       initiator = Initiator, stats = Stats,
                                       dhtNodePid = DhtNodePid, stage = Stage}) ->
      {BuildTime, SyncStruct} =
          case merkle_tree:is_merkle_tree(Params) of
              true ->
  
negative.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec build_recon_struct(method(), {intervals:non_empty_interval(), db_chunk_enc()})
          -> sync_struct().
  build_recon_struct(bloom, {I, DBItems}) ->
      ?ASSERT(not intervals:is_empty(I)),
      Fpr = get_bloom_fpr(),
      ElementNum = length(DBItems),
      HFCount = bloom:calc_HF_numEx(ElementNum, Fpr),
      BF = ?REP_BLOOM:new(ElementNum, Fpr, ?REP_HFS:new(HFCount), DBItems),
      #bloom_recon_struct{ interval = I, bloom = BF };
  build_recon_struct(merkle_tree, {I, DBItems}) ->
      ?ASSERT(not intervals:is_empty(I)),
      merkle_tree:new(I, DBItems, [{branch_factor, get_merkle_branch_factor()},
                                   {bucket_size, get_merkle_bucket_size()}]);
  build_recon_struct(art, {I, DBItems}) ->
      ?ASSERT(not intervals:is_empty(I)),
      Branch = get_merkle_branch_factor(),
      BucketSize = merkle_tree:get_opt_bucket_size(length(DBItems), Branch, 1),
      Tree = merkle_tree:new(I, DBItems, [{branch_factor, Branch},
  