anchor.diff:  %% merkle tree sync messages
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  -on({check_node, SenderPid, Interval, Hash}, State =
  -       #rr_recon_state{ struct = Tree }) ->
  +on({check_node, SenderPid, Interval, Hash}, State = #rr_recon_state{ struct = Tree }) ->
       Node = merkle_tree:lookup(Interval, Tree),
       {Result, ChildHashs} = 
           case Node of
  
positive.code:     is_subtype(Result,      {Matched::NodeL, NotMatched::NodeL}).
  compareNodes([], [], Acc) -> Acc;
  compareNodes([N | Nodes], [H | NodeHashs], {Matched, NotMatched}) ->
      Hash = merkle_tree:get_hash(N),
      case Hash =:= H of
          true -> compareNodes(Nodes, NodeHashs, {[N|Matched], NotMatched});
          false -> compareNodes(Nodes, NodeHashs, {Matched, [N|NotMatched]})
      end.
  
negative.code:                         dhtNodePid = DhtPid,
                          struct = #bloom_recon_struct{ interval = BloomI}
                         }) ->
      MySyncI = find_intersection(MyI, BloomI),
      ?TRACE("GET STATE - MyI=~p ~n BloomI=~p ~n SynI=~p", [MyI, BloomI, MySyncI]),
      case intervals:is_empty(MySyncI) of
          true -> comm:send_local(self(), {shutdown, empty_interval});
          false -> send_chunk_req(DhtPid, self(), MySyncI, mapInterval(MySyncI, 1), get_max_items(bloom))
  