anchor.diff:  	{add_clone,  Clones} ->
   	    clone_check_loop(Clones++Cs);
   	{get_clones, From, _ASTTab} ->
  -	    %% refac_io:format("Num of Cs:\n~p\n", [length(Cs)]),
  -	    %% refac_io:format("Cs:\n~p\n", [[element(1,C)||C<-Cs]]),
   	    Cs0=remove_sub_clones(Cs),
  -	    %% refac_io:format("Num of Cs0:\n~p\n", [length(Cs0)]),
   	    Cs1=[{AbsRanges, Len, Freq, AntiUnifier}||
   		    {_, {Len, Freq}, AntiUnifier,AbsRanges}<-Cs0],
   	    From ! {self(), Cs1},
  
positive.code: 
  %% examine the result of anti-unifying a pair of expression sequences and 
  %% get the sub expression sequences pairs that are anti-unifiable.
  group_au_result([])->
      [];
  group_au_result(AURes) ->
      %% here 'none' means the two expressions E1 an E2 do not anti-unify.
      {AUResList1,AUResList2} =
  	lists:splitwith(fun({_E1,_E2, S}) ->S/=none end, AURes),
      case AUResList2 of
  	[] ->
  	    [AUResList1];
  	[_|T] ->
  	    case AUResList1/=[] of
  		true ->
  		    [AUResList1]++group_au_result(T);
  		false ->
  		    group_au_result(T)
  	    end
      end.
  
  get_clone_pairs(AURes, Thresholds, Tabs) ->
      get_clone_pairs(AURes, Thresholds, Tabs, {[],[]},[]).
  
  get_clone_pairs([], Thresholds, Tabs, {_, ClonePairAcc}, Acc) ->
      case length(ClonePairAcc) < Thresholds#threshold.min_len of
        true -> Acc;
        _ ->
  	  ClonePairs = decompose_clone_pair_by_simi_score(
  			 lists:reverse(ClonePairAcc), Thresholds, Tabs),
  	  ClonePairs ++ Acc
      end;
  get_clone_pairs([CurPair = {_E1, _E2, SubSt}| AURes], Thresholds, Tabs,
  		{VarSubAcc, ClonePairAcc}, Acc) ->
  
negative.code:     case var_sub_conflicts(CurVarSubsts, VarSubAcc) of
        true ->
  	    %% conflicting variable substitution.
  	  case clone_pair_above_min_size(ClonePairAcc, Thresholds) of
  	      true ->
  		  NewClonePairs = decompose_clone_pair_by_simi_score(
  				    lists:reverse(ClonePairAcc), Thresholds, Tabs),
  