anchor.diff:      {AnnAST1,_} = refac_util:stop_tdTP(fun do_replace_expr_with_fun_call/2, 
   				       AnnAST, {Body, {{{StartLine, StartCol}, {EndLine, EndCol}}, Exp}}),
       fold_expression_1_1(AnnAST1,Tail).
  -
  -
  --spec(fold_expression_2_eclipse/7::(filename(), atom(),integer(), integer(), integer(), [dir()], integer()) -> 
  -	     {ok, [{integer(), integer(), integer(), integer(), syntaxTree(), {syntaxTree(), integer()}}]}).
  -fold_expression_2_eclipse(FileName, FunName, Arity, ClauseIndex, StartLine, SearchPaths, TabWidth ) ->
  -    {ok, {AnnAST2, _Info1}} = refac_util:parse_annotate_file(FileName,true, SearchPaths, TabWidth),
  -    case get_fun_clause_def(AnnAST2, FunName, Arity, ClauseIndex) of 
  -	{ok, {Mod, _FunName, _Arity, FunClauseDef1}} ->
  -	    Candidates = search_candidate_exprs(AnnAST2, {Mod, Mod}, FunName, FunClauseDef1),
  -	    Regions = [{StartLine1, StartCol1, EndLine1, EndCol1, FunCall1, {FunClauseDef1, ClauseIndex}} 
  -		       || {{{StartLine1, StartCol1}, {EndLine1, EndCol1}}, FunCall1}<-Candidates,
  -			  StartLine1 >= StartLine],
  -	    {ok, Regions};
  -	{error, _Reason} ->
  -	    %% THIS SHOULD NOT HAPPEN.
  -	    throw({error, "You have not selected a function definition."}) 
  -    end.
  -
  -
   
   %% =============================================================================================
   %% Side condition analysis.
  
positive.code:     case pos_to_fun_clause(AnnAST, {Line, Col}) of
        {ok, {Mod, FunName, _Arity, FunClauseDef, _ClauseIndex}} ->
  	  side_condition_analysis(FunClauseDef),
  	  Candidates = search_candidate_exprs(
  			 AnnAST, {Mod, Mod}, FunName, FunClauseDef),
  	  case Candidates of
  	    [] ->
  		throw({error, "No expressions that are suitable for folding "
  			      "against the selected function have been found!"});
  	    _ -> ok
  	  end,
  	  case Editor of
  	    emacs ->
  		FunClauseDef1 = term_to_list(FunClauseDef),
  		{ok, [{SLine, SCol, ELine, ECol, term_to_list(NewExp), FunClauseDef1}
  		      || {{{SLine, SCol}, {ELine, ECol}}, NewExp} <- Candidates], Cmd};
  	    eclipse -> {ok, {FunClauseDef, Candidates}}
  	  end;
        {error, Reason} -> throw({error, Reason})
      end.
  
  
  
negative.code:       [] -> throw({error, "Invalid function name!"});
        _ -> ok
      end,
      try list_to_integer(Arity) of
  	_ -> ok
      catch 
  	_:_ -> throw({error, "Invalid arity!"})
      end,
      try list_to_integer(ClauseIndex) of
  	_ ->
  	    ok
      catch
  	_:_ -> throw({error, "Invalid function clause index!"})
      end.
  	     
    
  fold_expr_by_name(FileName, ModName, FunName, Arity, ClauseIndex, SearchPaths, TabWidth, Editor) ->
      ?wrangler_io("\nCMD: ~p:fold_expression(~p,~p,~p,~p,~p,~p).\n",
  		 [?MODULE, FileName, ModName, FunName, Arity, ClauseIndex, TabWidth]),
  