anchor.diff:  -spec merkle_resolve_leaves_init(
           Sync::[merkle_sync()], Hashes::bitstring(), DestRRPid::comm:mypid(),
           Stats, OwnerL::comm:erl_local_pid(), Params::#merkle_params{}, P1EOneLeaf::float())
  -        -> {HashesReply::bitstring(), HashesReq::[[bitstring()]], NewStats::Stats}
  +        -> {HashesReply::bitstring(), HashesReq::[bitstring()], NewStats::Stats}
       when is_subtype(Stats, rr_recon_stats:stats()).
   merkle_resolve_leaves_init(Sync, Hashes, DestRRPid, SID, OwnerL, Params, P1EOneLeaf) ->
       BucketSizeBits = merkle_max_bucket_size_bits(Params),
  
positive.code: %% @doc For each leaf(I)-inner(NI) comparison, gets the requested keys and
  %%      resolves them (if non-empty) with a key_upd_send (called on initiator).
  -spec merkle_resolve_req_keys_init(
          Sync::[merkle_sync()], BinKeyList::[[bitstring()]], DestRRPid::comm:mypid(),
          Stats, OwnerL::comm:erl_local_pid(), P1EOneLeaf::float(), SendKeysAcc::[?RT:key()],
          ResolveNonEmpty::boolean())
          -> NewStats::Stats
      when is_subtype(Stats, rr_recon_stats:stats()).
  merkle_resolve_req_keys_init([{leaf, inner, OtherMaxItemsCount, LeafNode, false = _FoundSkipHash} | TL],
                               [ReqKeys | BinKeyList],
                               DestRRPid, Stats, OwnerL, P1EOneLeaf, SendKeys, true) ->
      % TODO: same as above -> extract function?
      SendKeys1 =
          case ReqKeys of
              [] -> SendKeys;
              [_|_] ->
                  ReqSet = gb_sets:from_list(ReqKeys),
                  BucketSize = merkle_tree:get_item_count(LeafNode),
                  {SigSize, _VSize} = trivial_signature_sizes(BucketSize, OtherMaxItemsCount, P1EOneLeaf),
                  [Key || {Key, _Version} <- merkle_tree:get_bucket(LeafNode),
                          gb_sets:is_member(compress_key(Key, SigSize),
                                            ReqSet)] ++ SendKeys
          end,
      merkle_resolve_req_keys_init(TL, BinKeyList, DestRRPid, Stats, OwnerL, P1EOneLeaf,
                                   SendKeys1, true);
  
negative.code:   when is_bitstring(Hashes) ->
      ?TRACE1(_Msg, State),
      P1EOneLeaf = calc_n_subparts_p1e(length(MerkleSync), P1EAllLeaves),
      {HashesReply, BinIdxList, NStats} =
          merkle_resolve_leaves_init(MerkleSync, Hashes, DestRRPid, Stats,
                                     OwnerL, Params, P1EOneLeaf),
      comm:send(DestRCPid, {resolve_req, HashesReply, BinIdxList}),
      NewState = State#rr_recon_state{stats = NStats, misc = [{one_leaf_p1e, P1EOneLeaf}]},
      % do not shutdown if HashesReply is non-empty!
      case HashesReply of
  