anchor.diff:  		  end
   	  end,
       Cs2= lists:append(lists:map(Fun, Cs)),
  -    Cs3 =[lists:map(fun(C) -> {C, Len, length(C)} end, group_by(2, lists:map(Fun0, Range)))
  +    Cs3 =[lists:map(fun(C) -> {C, Len, length(C)} end, group_by(3, lists:map(Fun0, Range)))
   		    || {Range, Len, _F}<- Cs2],
       Cs4 = lists:append(Cs3),
  -    Cs5 =[{[R||{R,_Bd} <-Range], Len, F} || {Range, Len, F} <- Cs4, Len>=MinLength, F>=MinClones],
  -    lists:usort(Cs5).
  +    Cs5 =[{lists:unzip([{R, Code}||{R,Code, _Bd} <-Range]), Len, F} 
  +	  || {Range, Len, F} <- Cs4, Len>=MinLength, F>=MinClones],
  +    Cs6 = [try get_anti_unifier(Exprs) of 
  +	       Res -> [{Range, Len, F, Res}]
  +	   catch
  +	       _Error_ -> []
  +	   end ||{{Range, Exprs}, Len, F} <-Cs5],
  +    lists:usort(lists:append(Cs6)).
   
   
   group_by(N, TupleList) ->
  
positive.code: display_clones_2([{{File, StartLine, StartCol}, {File, EndLine, EndCol}}|Rs], Str) ->
      Str1 = case Rs == [] of 
  	       true ->
  		   Str ++ File++io_lib:format(":~p.~p-~p.~p:  \n", [StartLine,StartCol-1,EndLine, EndCol]);
  	       _ ->
  		   Str ++ File++io_lib:format(":~p.~p-~p.~p:  \n", [StartLine, StartCol-1, EndLine, EndCol])
  	   end,
      display_clones_2(Rs, Str1).
  		    
      
  				    
  				    
      
      
  
negative.code: 
  -export([init/1]).
  
  -import(refac_sim_expr_search, [start_counter_process/0, stop_counter_process/1, gen_new_var_name/1,variable_replaceable/1]).
  
  %% TODO:  
  %% 1) does recusive function calls affect the result?
  %% 2) does qualifed names affect the result? 
  