anchor.diff:  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % Merkle Tree specific
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +
  +%% @doc Transforms merkle compare results into a compact representation for
  +%%      transfer.
  +-spec merkle_compress_cmp_result(CmpRes, Bin, CmpRes) -> {Bin, [merkle_tree:mt_node_key()]}
  +    when is_subtype(Bin, binary()),
  +         is_subtype(CmpRes, [merkle_cmp_result()]).
  +merkle_compress_cmp_result([], Bin, Keys) ->
  +    {Bin, lists:reverse(Keys)};
  +merkle_compress_cmp_result([H1 | TL], Bin, Keys) ->
  +    case H1 of
  +        {K} ->
  +            merkle_compress_cmp_result(TL, <<Bin/bitstring, ?recon_fail_cont2:2>>,
  +                                       [K | Keys]);
  +        _ ->
  +            ?ASSERT(is_integer(H1) andalso 0 =< H1 andalso H1 < 4),
  +            merkle_compress_cmp_result(TL, <<Bin/bitstring, H1:2>>, Keys)
  +    end.
  +
  +%% @doc Transforms the compact representation of merkle compare results from
  +%%      merkle_compress_cmp_result/3 back into the original form.
  +-spec merkle_decompress_cmp_result(binary(), [merkle_tree:mt_node_key()], CmpRes) -> CmpRes
  +    when is_subtype(CmpRes, [merkle_cmp_result()]).
  +merkle_decompress_cmp_result(<<>>, [], CmpRes) ->
  +    lists:reverse(CmpRes);
  +merkle_decompress_cmp_result(<<?recon_fail_cont2:2, T/bitstring>>, [K | Keys], CmpRes) ->
  +    merkle_decompress_cmp_result(T, Keys, [{K} | CmpRes]);
  +merkle_decompress_cmp_result(<<X:2, T/bitstring>>, Keys, CmpRes) ->
  +    merkle_decompress_cmp_result(T, Keys, [X | CmpRes]).
   
   %% @doc Compares the given Hashes from the other node with my merkle_tree nodes
   %%      (executed on non-initiator).
  
positive.code:                                         {resolve_started, ResolveCount}], Stats);
                  true -> Stats
               end,
      send(DestReconPid, {check_nodes_response, Result}),
      State#rr_recon_state{ struct = RestTree, stats = NStats };
  
  on({check_nodes_response, CmpResults}, State =
         #rr_recon_state{ stage = reconciliation,        initiator = true,
                          struct = Tree,                 ownerPid = OwnerL,
                          dest_rr_pid = DestNodePid,     stats = Stats,
                          dest_recon_pid = DestReconPid }) ->
      SID = rr_recon_stats:get(session_id, Stats),
      {Req, ToResolve, NStats0, RTree} =
          process_tree_cmp_result(CmpResults, Tree,
  
negative.code:     % merkle tree sync messages
      {check_nodes, SenderPid::comm:mypid(), ToCheck::[merkle_cmp_request()]} |
      {check_nodes, ToCheck::[merkle_cmp_request()]} |
      {check_nodes_response, Results::binary(), HashKeys::[merkle_tree:mt_node_key()]} |
      % dht node response
      {create_struct2, {get_state_response, MyI::intervals:interval()}} |
      {create_struct2, DestI::intervals:interval(),
  