anchor.diff:  
   -define(Check_sum_fun(X), erlang:crc32(integer_to_list(X))). %hash function for checksum building
   
  --type key()     :: integer().
   -type value()   :: integer().
   -type cell()    :: {Count       :: non_neg_integer(),
  -                    KeySum      :: key(),
  +                    KeySum      :: integer(),
                       KeyHashSum  :: integer(),   %sum c(x) of all inserted keys x, for c = any hashfunction not in hfs
                       ValSum      :: value(),
                       ValHashSum  :: integer()}.  %sum c(y) of all inserted values y, for c = any hashfunction not in hfs
  
positive.code: % @doc lists all correct entries of this structure
  %     correct entries can be retrieved out of pure cells
  %     a pure cell := count = 1 and check_sum(keySum)=keyHashSum and check_sum(valSum)=valHashSum
  -spec list_entries(iblt()) -> [{key(), value()}].
  list_entries(IBLT) ->
      p_list_entries(IBLT, []).
  
  -spec p_list_entries(iblt(), [{key(), value()}]) -> [{key(), value()}].
  p_list_entries(#iblt{ table = T } = IBLT, Acc) ->
      case get_any_entry(T, []) of
          [] -> Acc;
          L ->
              NewIBLT = lists:foldl(fun({Key, Val}, NT) -> 
                                            delete(NT, Key, Val) 
                                    end, IBLT, L),
              p_list_entries(NewIBLT, lists:append([L, Acc]))
      end.
  
  % tries to find any pure entry 
  -spec get_any_entry(table(), [{key(), value()}]) -> [{key() | value()}].
  get_any_entry([], Acc) -> 
      Acc;
  get_any_entry([{_, Col} | T], Acc) ->
      Result = [{Key, Val} || {Count, Key, KCheck, Val, ValCheck} <- Col, 
                              is_pure({Count, Key, KCheck, Val, ValCheck})],
      if 
          Result =:= [] -> get_any_entry(T, lists:append([Result, Acc]));
          true -> Result
  
negative.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec insert(iblt(), ?RT:key(), value()) -> iblt().
  insert(IBLT, Key, Value) ->
      change_table(IBLT, add, Key, Value).
  
  -spec delete(iblt(), ?RT:key(), value()) -> iblt().
  delete(IBLT, Key, Value) ->
      change_table(IBLT, remove, Key, Value).
  
  