anchor.diff:  %% Helper
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  --spec fill_bloom(Iterator, InnerBloom1, LeafBloom1) -> {InnerBloom2, LeafBloom2} when
  -      is_subtype(Iterator,    merkle_tree:mt_iter()),
  -      is_subtype(InnerBloom1, ?REP_BLOOM:bloom_filter()),
  -      is_subtype(LeafBloom1,  ?REP_BLOOM:bloom_filter()),
  -      is_subtype(InnerBloom2, ?REP_BLOOM:bloom_filter()),
  -      is_subtype(LeafBloom2,  ?REP_BLOOM:bloom_filter()).
  +-spec fill_bloom(Iterator, Inner1::BF, Leaf1::BF) -> {Inner2::BF, Leaf2::BF} when
  +      is_subtype(Iterator,  merkle_tree:mt_iter()),
  +      is_subtype(BF,        ?REP_BLOOM:bloom_filter()).
   fill_bloom(Iter, IBF, LBF) ->
       Next = merkle_tree:next(Iter),
       case Next of
  
positive.code: 
  -spec lookup(merkle_tree:mt_node(), art()) -> boolean().
  lookup(Node, Art) ->
      %?TRACE("MT=~p~nAT=~p", [merkle_tree:get_interval(Node), get_interval(Art)]),
      lookup_cf([{Node, get_correction_factor(Art)}], Art).
      %case get_interval(Art) =:= merkle_tree:get_interval(Node) of        
      %    true -> lookup_cf([{Node, get_correction_factor(Art)}], Art);
      %    false -> false
      %end.
  
  -spec lookup_cf([{Node, CF}], Art) -> Result when
      is_subtype(Art,    art()),
      is_subtype(Node,   merkle_tree:mt_node()),
      is_subtype(CF,     non_neg_integer()),        %correction factor
      is_subtype(Result, boolean()).
  
  lookup_cf([], _Art) ->
      true;
  lookup_cf([{Node, 0} | L], {art, _Conf, _I, IBF, LBF} = Art) ->
  
negative.code: %% @author Maik Lange <malange@informatik.hu-berlin.de>
  %% @doc    Approximate Reconciliation Tree (ART) implementation
  %%         Represents a packed merkle tree.
  %% @end
  %% @reference
  %%         2002 - J.Byers, J.Considine, M.Mitzenmachen
  %%              Fast Approximate Reconcilication of Set Differences
  %%              - BU Computer Science TR
  %% @end
  