anchor.diff:  
   
   search_for_clones(Dir, Data, MinLen, MinToks, MinFreq) ->
  -    F0 = fun(I) ->
  -		 case is_integer(I) of 
  -		     true -> integer_to_list(I) ++ ",";
  -		     false -> atom_to_list(I)
  +    F0 = fun (I) ->
  +		 case is_integer(I) of
  +		   true -> integer_to_list(I) ++ ",";
  +		   false -> atom_to_list(I)
   		 end
   	 end,
  -    F =fun({I, Range}) ->
  -	       lists:duplicate(length(F0(I)), {I, Range})
  -       end, 
  -    %% refac_io:format("Data1:\n~p\n", [Data]),
  -    IndexStr = lists:append([F0(I)|| {I, _}<-Data]),
  -    %% refac_io:format("IndexStr:\n~p\n",[IndexStr]),
  -    SuffixTreeExec = filename:join(?WRANGLER_DIR,"bin/suffixtree"),
  -    Cs= suffix_tree:get_clones_by_suffix_tree(Dir, IndexStr++"&",MinLen, MinFreq,"0123456789,#&", 1, SuffixTreeExec),
  -    Cs1 = lists:append([strip_a_clone({[{S,E} |Ranges], {Len, Freq}}, SubStr, MinLen, MinFreq)
  -			|| {[{S,E} |Ranges], Len, Freq} <- Cs, 
  -			      SubStr <-[lists:sublist(IndexStr, S, E-S+1)]]),
  -    Cs2 =refac_code_search_utils:remove_sub_clones([{R,Len,Freq}||{R, {Len, Freq}}<-Cs1]),
  -    NewData =lists:append([F(Elem) ||Elem <-Data]),
  -    %% refac_io:format("NewData:\n~p\n", [NewData]),
  -    get_clones_in_ranges([{R,{Len, Freq}}||{R, Len, Freq}<-Cs2], 
  -     			 NewData, MinLen, MinToks, MinFreq).
  +    F = fun ({Elem={{_M,_F,_A, _Index},_NumOfToks}, I}) ->
  +		lists:duplicate(length(F0(I)), {I, Elem})
  +	end,
  +    IndexStr = lists:append([F0(I) || {_, I} <- Data]),
  +    refac_io:format("Data:\n~p\n", [Data]),
  +    refac_io:format("IndexStr:\n~p\n",[IndexStr]),
  +    SuffixTreeExec = filename:join(?WRANGLER_DIR, "bin/suffixtree"),
  +    Cs = suffix_tree:get_clones_by_suffix_tree(Dir, IndexStr ++ "&", MinLen, MinFreq, "0123456789,#&", 1, SuffixTreeExec),
  +    Cs1 = lists:append([strip_a_clone({[{S, E}| Ranges], {Len, Freq}}, SubStr, MinLen, MinFreq)
  +			|| {[{S, E}| Ranges], Len, Freq} <- Cs,
  +			   SubStr <- [lists:sublist(IndexStr, S, E - S + 1)]]),
  +    Cs2 = refac_code_search_utils:remove_sub_clones([{R, Len, Freq} || {R, {Len, Freq}} <- Cs1]),
  +    refac_io:format("Cs2:\n~p\n", [Cs2]),
  +    NewData = lists:append([F(Elem) || Elem <- Data]),
  +    get_clones_in_ranges([{R, {Len, Freq}} || {R, Len, Freq} <- Cs2],
  +			 NewData, MinLen, MinToks, MinFreq).
      
   strip_a_clone({Ranges, {Len, F}}, Str, MinLen, MinFreq) ->
       {Str1, Str2} = lists:splitwith(fun(C) ->C==$# orelse C ==$, end, Str),
  
positive.code: nested_tuple_to_list(A) ->
      [A].
  
  
  sub_list(List, Len, MaxLen) ->
      sub_list_1(List, Len, MaxLen, []).
  sub_list_1(_List, Len, MaxLen, Acc) when Len>MaxLen ->
      Acc;
  sub_list_1(List, Len, MaxLen, Acc) when Len==MaxLen ->
      [List|Acc];
  sub_list_1(List, Len, MaxLen, Acc) ->
      SubLists = [lists:sublist(List, I, Len)||I<- lists:seq(1, length(List)-Len+1)],    
      sub_list_1(List, Len+1, MaxLen, SubLists++Acc).
  
  
  
  pmap(F, L) ->
  
negative.code: stop_ast_process(Pid)->
      Pid ! stop.
  
  insert_to_ast_tab(Pid, {{M, F, A}, ExprASTs}) ->
      Pid ! {add, {{M, F, A}, ExprASTs}}.
  
  get_clones(Pid, MinLen, MinToks, MinFreq, Dir) ->
      Pid! {get_clones, self(), MinLen, MinToks, MinFreq, Dir},
  