anchor.diff:      % TODO: same as above -> extract function?
       IdxSize = bits_for_number(merkle_tree:get_item_count(LeafNode)),
       SendKeys1 =
  -        case decompress_k_list(ReqKeys,
  -                               [element(1, KV) || KV <- merkle_tree:get_bucket(LeafNode)],
  -                               IdxSize, 0) of
  +        case decompress_k_list_kv(ReqKeys, merkle_tree:get_bucket(LeafNode),
  +                                  IdxSize, 0) of
               [] -> SendKeys;
               [_|_] = X -> X ++ SendKeys
           end,
  
positive.code:    State = #rr_recon_state{stage = resolve,           initiator = Initiator,
                             method = RMethod,
                             dest_rr_pid = DestRRPid,   ownerPid = OwnerL,
                             k_list = KList,          stats = Stats})
    when (RMethod =:= trivial andalso not Initiator) orelse
             ((RMethod =:= bloom orelse RMethod =:= shash) andalso Initiator) ->
      ?TRACE1(_Msg, State),
  
negative.code: 
  on({resolve_req, OtherDBChunk, MyDiffIdx, SigSize, VSize, DestReconPid} = _Msg,
     State = #rr_recon_state{stage = resolve,           initiator = false,
                             method = shash,            kv_list = KVList}) ->
      ?TRACE1(_Msg, State),
  
      DBChunkTree =
          decompress_kv_list(OtherDBChunk, [], SigSize, VSize),
      IdxSize = bits_for_number(length(KVList)),
      MyDiffKeys = [Key || Key <- decompress_k_list_kv(MyDiffIdx, KVList, IdxSize, 0),
                                  not gb_trees:is_defined(compress_key(Key, SigSize),
                                                          DBChunkTree)],
  
  