anchor.diff:      p_add_list_v2_(Rest, AccPosBF2, AccBF2, BF, BFSize);
   p_add_list_v2_([], AccPosBF, AccBF, BF, BFSize) ->
       RestBits = BFSize - erlang:bit_size(AccBF) - 8,
  -    <<AccBF2Nr:BFSize>> = <<AccBF/binary, AccPosBF:8, 0:RestBits>>,
  -    % merge AccBF2 and BF
  -    <<BFNr:BFSize>> = BF,
  -    ResultNr = AccBF2Nr bor BFNr,
  -    <<ResultNr:BFSize>>.
  +    case BF of
  +        <<>> -> <<AccBF/binary, AccPosBF:8, 0:RestBits>>;
  +        _ ->
  +            <<AccBF2Nr:BFSize>> = <<AccBF/binary, AccPosBF:8, 0:RestBits>>,
  +            % merge AccBF2 and BF
  +            <<BFNr:BFSize>> = BF,
  +            ResultNr = AccBF2Nr bor BFNr,
  +            <<ResultNr:BFSize>>
  +    end.
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  
positive.code:                   (bloom_filter(), filter) -> binary();
                    (bloom_filter(), hfs) -> ?REP_HFS:hfs();
                    (bloom_filter(), items_count) -> non_neg_integer().
  get_property(#bloom{filter = Filter, hfs = Hfs, items_count = NumItems}, fpr) ->
      Size = erlang:bit_size(Filter),
      calc_FPR(Size, NumItems, ?REP_HFS:size(Hfs));
  get_property(#bloom{filter = F}     , size)        -> erlang:bit_size(F);
  get_property(#bloom{filter = X}     , filter)      -> X;
  get_property(#bloom{hfs = X}        , hfs)         -> X;
  get_property(#bloom{items_count = X}, items_count) -> X.
  
negative.code: %% Types
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -record(bloom, {
                  size          = ?required(bloom, size):: pos_integer(),    %bit-length of the bloom filter - requirement: size rem 8 = 0
                  filter        = <<>>                  :: binary(),         %length = size div 8
                  hfs           = ?required(bloom, hfs) :: ?REP_HFS:hfs(),   %HashFunctionSet
                  items_count   = 0                     :: non_neg_integer() %number of inserted items
                 }).
  