anchor.diff:  	    C1 = {[F0(R, Len) || R <- Ranges], {Len, Freq}},
   	    From ! {self(), C1},
   	    hash_loop({NextSeqNo, ExpHashTab, NewData},Inc);
  -	{remove_entry, {M, F, A}} ->
  +	{remove_entry, {M, F, A}, From} ->
   	    NewData1 = [case {M,F,A}/={M1, F1, A1} of
   			    true ->
   				{Seq, {M1, F1, A1}, KeyExprPairs};
  
positive.code: 			    _ ->
  				{Seq, {M, F, A}, KeyExprPairs}
  			end || {Seq, {M, F, A}, KeyExprPairs} <- NewData],
  	    hash_loop({NextSeqNo, ExpHashTab, NewData1},Inc);
  	{get_clone_candidates, From, Thresholds, Dir} ->
  	    {ok, OutFileName} = search_for_clones(Dir, lists:reverse(NewData), Thresholds),
  
negative.code: hash_loop({NextSeqNo, ExpHashTab, NewData},Inc) ->
      receive
  	%% add a new entry.
  	{add, {{M, F, A}, KeyExprPairs}, From} ->
  	    KeyExprPairs1 =
  		[{{Index1, NumOfToks, StartEndLoc, StartLine, true}, HashIndex}
  		 || {Key, {Index1, NumOfToks, StartEndLoc, StartLine}} <- KeyExprPairs,
  		    HashIndex <- [get_index(ExpHashTab, Key)]],
              From ! {self(), From, done},
  	    hash_loop({NextSeqNo+1, ExpHashTab, [{NextSeqNo, {M,F,A}, KeyExprPairs1}| NewData]},Inc);
  	{quick_hash,{{FileName, FunName, Arity}, StartLine}, From} ->
  	    NewData1 = [case {M, F, A} of
  			    {FileName, FunName, Arity} ->
  				{Seq, {M, F, A}, [{{Index1, NumOfToks, StartEndLoc, StartLine, false}, HashKey}
  