anchor.diff:  %%                        (EndLine::integer(), EndCol::integer(), NewExp::term(),
   %%                        {FunClauseDef, ClauseIndex}::{term(), integer()) -> term()
   %% =============================================================================================  
  -fold_expression_1(FileName, StartLine, StartCol, EndLine, EndCol, NewExp, {FunClauseDef, ClauseIndex}) ->
  -    fold_expression_1(FileName, StartLine, StartCol, EndLine, EndCol, NewExp, {FunClauseDef, ClauseIndex}, emacs).
  -
   fold_expression_1_eclipse(FileName, FunClauseDef, RangeNewExpList) ->   %% RangeNewExpList [{{{StartLine, EndCol}, {EndLine, EndCol}}, NewExp}]
       {ok, {AnnAST, _Info}} = refac_util:parse_annotate_file(FileName, true, []),
       Body = refac_syntax:clause_body(FunClauseDef),
  
positive.code:     Arity = length(refac_syntax:application_arguments(FunCall)),		   
      Body = refac_syntax:clause_body(FunClauseDef),
      {AnnAST1,_} = refac_util:stop_tdTP(fun do_replace_expr_with_fun_call/2, AnnAST, {Body, NewExp, {{StartLine, StartCol}, {EndLine, EndCol}}}),
      case Editor of 
  	emacs ->  refac_util:write_refactored_files([{{FileName, FileName}, AnnAST1}]),
  		  {ok, {AnnAST2, _Info1}} = refac_util:parse_annotate_file(FileName,true, []),
  		  case get_fun_clause_def(AnnAST2, FunName, Arity, ClauseIndex) of 
  		      {ok, {_Mod, _FunName, _Arity, FunClauseDef1}} ->
  			  Candidates = search_candidate_exprs(AnnAST2, FunName, FunClauseDef1),
  			  Regions = [{StartLine1, StartCol1, EndLine1, EndCol1, FunCall1, {FunClauseDef1, ClauseIndex}} 
  				     || {{{StartLine1, StartCol1}, {EndLine1, EndCol1}}, FunCall1}<-Candidates,
  					StartLine1 >= StartLine],
  			  {ok,  Regions};
  		      {error, reason} ->
  			  {error, "You have not selected a function definition."}  %% THIS SHOULD NOT HAPPEN.
  		  end;
  	eclipse -> Res = [{{FunName, Arity, ClauseIndex, StartLine}, FileName, FileName, refac_prettypr:print_ast(AnnAST1)}],
  		   {ok, Res}
      end.
  
  fold_expression_2_eclipse(FileName, FunName, Arity, ClauseIndex, StartLine ) ->
  
negative.code:     
  
  
  fold_expression_1(FileName, StartLine, StartCol, EndLine, EndCol, NewExp, {FunClauseDef, ClauseIndex}) -> 
      {ok, {AnnAST, _Info}} = refac_util:parse_annotate_file(FileName, true, []),
      FunCall = case refac_syntax:type(NewExp) of 
  		  application -> NewExp;
  