anchor.diff:  
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  --spec prop_join([?BLOOM:key(),...], [?BLOOM:key(),...]) -> true.                                        
  +-spec prop_join([?BLOOM:key(),...], [?BLOOM:key(),...]) -> true.
   prop_join(List1, List2) ->
       BSize = erlang:length(List1) + erlang:length(List2),
       B1 = ?BLOOM:add_list(newBloom(BSize, 0.1), List1),
  
positive.code: 
  for_to_ex(I, N, Fun, AccuFun, Accu) ->
      NewAccu = AccuFun(Fun(I), Accu),
      if 
          I < N ->
              for_to_ex(I + 1, N, Fun, AccuFun, NewAccu);
          I =:= N ->
              NewAccu;
          I > N ->
              failed
      end.
negative.code:     DestFpr = randoms:rand_uniform(1, 500) / 1000,
      %DestFpr = 0.01,
      FalsePositives = util:p_repeatAndAccumulate(
                         fun measure_fp/2,
                         [DestFpr, ElementCount],
                         ?Fpr_Test_NumTests,
                         fun(X, Y) -> X + Y end,
                         0),
      AvgFpr = FalsePositives / ?Fpr_Test_NumTests,
      ct:pal("FalsePositives=~p - NumberOfTests=~p - Elements=~p~n"
             "DestFpr: ~f~nMeasured Fpr: ~f~n
              BloomFilter=~p~n",
             [FalsePositives, ?Fpr_Test_NumTests, ElementCount, DestFpr, AvgFpr,
              ?BLOOM:print(?BLOOM:new(ElementCount, DestFpr))]),
      %?assert(DestFpr >= AvgFpr orelse DestFpr * 1.3 >= AvgFpr),
      true.
  
  tester_fpr(_) ->
  