anchor.diff:                       rr_recon_stats:inc([{resolve_started, ResolveCalled}], Stats2);
                    false -> Stats
                end,
  -    {ok, rr_recon_stats:set([{tree_size, merkle_tree:size_detail(Tree)}], NStats)}.
  +    rr_recon_stats:set([{tree_size, merkle_tree:size_detail(Tree)}], NStats).
   
   -spec art_get_sync_leafs(Nodes::NodeL, Art, Stats, Acc::NodeL) -> {ToSync::NodeL, Stats} when
       is_subtype(NodeL,   [merkle_tree:mt_node()]),
  
positive.code: %% art recon
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec art_recon(MyTree, Art, State) -> {ok, Stats} when
      is_subtype(MyTree, merkle_tree:merkle_tree()),
      is_subtype(Art,    art:art()),
      is_subtype(State,  state()),
  
negative.code:            end;
          true -> ok
      end,
      Stats1 = rr_recon_stats:set([{build_time, BuildTime}], Stats),
      NewState = State#rr_recon_state{struct = SyncStruct, stats = Stats1},
      if EmptyRest orelse RMethod =:= bloom ->
             begin_sync(SyncStruct, Params, NewState#rr_recon_state{stage = reconciliation});
         not EmptyRest andalso RMethod =:= merkle_tree ->
             NewState#rr_recon_state{stage = build_struct};
         true ->
             NewState#rr_recon_state{stage = reconciliation}
      end.
  
  -spec begin_sync(MySyncStruct::sync_struct(), OtherSyncStruct::parameters(),
                   state()) -> state() | kill.
  begin_sync(MySyncStruct, _OtherSyncStruct,
             State = #rr_recon_state{method = bloom, initiator = false,
                                     ownerPid = OwnerL, stats = Stats,
                                     dest_rr_pid = DestRRPid}) ->
      ?TRACE("BEGIN SYNC", []),
      SID = rr_recon_stats:get(session_id, Stats),
      send(DestRRPid, {continue_recon, comm:make_global(OwnerL), SID,
                       {start_recon, bloom, MySyncStruct, true}}),
      shutdown(build_struct, State);
  begin_sync(MySyncStruct, _OtherSyncStruct,
             State = #rr_recon_state{method = merkle_tree, initiator = Initiator,
                                     ownerPid = OwnerL, stats = Stats,
                                     dest_recon_pid = DestReconPid,
                                     dest_rr_pid = DestRRPid}) ->
      ?TRACE("BEGIN SYNC", []),
      case Initiator of
          true ->
              send(DestReconPid,
                   {check_nodes, comm:this(), [merkle_tree:get_hash(MySyncStruct)]});
          false ->
              SID = rr_recon_stats:get(session_id, Stats),
              SyncI = merkle_tree:get_interval(MySyncStruct),
              SyncParams = [{reconPid, comm:this()}],
              send(DestRRPid,
                   {continue_recon, comm:make_global(OwnerL), SID,
                    {create_struct, merkle_tree, SyncI, SyncParams, true}})
      end,
      Stats1 =
          rr_recon_stats:set(
            [{tree_compareLeft, ?IIF(Initiator, 1, 0)},
             {tree_size, merkle_tree:size_detail(MySyncStruct)}], Stats),
      State#rr_recon_state{stats = Stats1};
  begin_sync(MySyncStruct, OtherSyncStruct,
             State = #rr_recon_state{method = art, initiator = Initiator,
                                     ownerPid = OwnerL, stats = Stats,
                                     dest_rr_pid = DestRRPid}) ->
      ?TRACE("BEGIN SYNC", []),
      case Initiator of
          true ->
              Stats1 = art_recon(MySyncStruct, OtherSyncStruct, State),
              shutdown(sync_finished, State#rr_recon_state{stats = Stats1});
          false ->
              SID = rr_recon_stats:get(session_id, Stats), 
              send(DestRRPid, {continue_recon, comm:make_global(OwnerL), SID,
                               {start_recon, art, MySyncStruct, true}}),
              shutdown(build_struct, State)
      end.
  
  -spec shutdown(exit_reason(), state()) -> kill.
  