anchor.diff:      BucketSize = length(Bucket),
       ?ASSERT(BucketSize < 255),
       Bin1 = <<Bin/bitstring, BucketSize:8>>,
  -    NBin = compress_kv_list(Bucket, Bin1, SigSize, get_min_version_bits()),
  +
  +    % note: we can reach the best compression if values and versions align to
  +    %       byte-boundaries
  +    {SigSize, VSize} = align_bitsize(SigSize0, get_min_version_bits()),
  +
  +    NBin = compress_kv_list(Bucket, Bin1, SigSize, VSize),
       merkle_resolve_leaves_noninit(TL, NBin, Dest, SID, OwnerL, Interval, Items,
                                     LeafNAcc + 1);
   merkle_resolve_leaves_noninit([], Bin, Dest, SID, OwnerL, Interval, Items, LeafNAcc) ->
  
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:                         calc_signature_size_1_to_n(1, VP, 128)),
      % note: we can reach the best compression if values and versions align to
      %       byte-boundaries
      {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",
  