anchor.diff:                          calc_signature_size_1_to_n(1, VP, 128)),
       % note: we can reach the best compression if values and versions align to
       %       byte-boundaries
  -    FullKVSize0 = SigSize0 + VSize0,
  -    FullKVSize = bloom:resize(FullKVSize0, 8),
  -    VSize = VSize0 + ((FullKVSize - FullKVSize0) div 2),
  -    SigSize = FullKVSize - VSize, 
  +    {SigSize, VSize} = align_bitsize(SigSize0, VSize0),
       DBChunkBin = compress_kv_list(DBItems, <<>>, SigSize, VSize),
       % debug compressed and uncompressed sizes:
       ?TRACE("SigSize: ~p, VSize: ~p, ChunkSize: ~p / ~p bits",
  
positive.code:                  erlang:term_to_binary(DBChunkBin,
                                         [{minor_version, 1}, {compressed, 2}]))]),
      {DBChunkBin, SigSize, VSize}.
  
  -spec build_recon_struct(method(), OldSyncStruct::sync_struct() | {},
                           DestI::intervals:non_empty_interval(), db_chunk_kv(),
  
negative.code:                     end, {Interval, Items, LeafNAcc}, LeafNodes),
      merkle_resolve_leaves_noninit(TL, Bin, Dest, SID, OwnerL, NInterval, NItems,
                                    NLeafNAcc);
  merkle_resolve_leaves_noninit([{leaf, leaf, SigSize0, LeafNode} | TL], Bin,
                                Dest, SID, OwnerL, Interval, Items, LeafNAcc) ->
      ?ASSERT(merkle_tree:is_leaf(LeafNode)),
      % TODO: make extra version binary for better compression (?)
  