anchor.diff:           fold_expr_by_loc_eclipse/5, 
   	 fold_expr_1_eclipse/5,
   	 do_fold_expression/5,
  -	 fold_expr_by_name/7, 
            fold_expr_by_name/8,
            fold_expr_by_name_eclipse/7]).
   
  
positive.code: 			    " following Wrangler's SearchPaths!"});
  	[FileName] -> FileName;
  	_ -> throw({error, "Wrangler found more than one file defining the module, " ++ atom_to_list(ModName)
  											   ++ ", folloing the SearchPaths  specified!"})
      end.
  
  %%-spec(fold_expr_1_eclipse/5::(filename(), syntaxTree(),
  
negative.code:             {ok, Regions, Cmd};
          eclipse -> {ok, {FunClauseDef, Candidates}};
          command ->
              do_fold_expression(FileName, Regions, SearchPaths, command, TabWidth, "");
          composite_emacs ->
              do_fold_expression(FileName, Regions, SearchPaths, composite_emacs, TabWidth, "")
      end.
  
  fold_expr_by_name(FileName, ModName, FunName, Arity, ClauseIndex,SearchPaths, Editor, TabWidth) ->
      ?wrangler_io("\nCMD: ~p:fold_expression_by_name(~p,~p,~p,~p,~p,~p, ~p, ~p).\n",
                      [?MODULE, FileName, ModName, FunName, Arity, ClauseIndex, SearchPaths, Editor,TabWidth]),
      fold_by_name_par_checking(ModName, FunName, Arity, ClauseIndex),
      fold_expr_by_name_1(FileName, list_to_atom(ModName), list_to_atom(FunName),
  		        list_to_integer(Arity), list_to_integer(ClauseIndex),
  		        SearchPaths, Editor, TabWidth).
  
  %%-spec(fold_expr_by_name_eclipse/7::(filename(), string(), string(), integer(), integer(), [dir()], integer())
  %%				   -> {ok, {syntaxTree(), [{{{integer(), integer()}, {integer(), integer()}}, syntaxTree(),syntaxTree()}]}}).
  fold_expr_by_name_eclipse(FileName, ModName, FunName, Arity, ClauseIndex, SearchPaths, TabWidth) ->
      fold_expr_by_name_1(FileName, list_to_atom(ModName), list_to_atom(FunName), Arity,
  		        ClauseIndex, SearchPaths, eclipse, TabWidth).
  
  fold_expr_by_name_1(FileName, ModName, FunName, Arity, ClauseIndex, SearchPaths, Editor, TabWidth) ->
      Cmd = "CMD: " ++ atom_to_list(?MODULE) ++ ":fold_expression(" ++ "\"" ++
          FileName ++ "\", " ++ atom_to_list(ModName) ++ ", " ++ atom_to_list(FunName) ++
          ", " ++ integer_to_list(Arity) ++ ", " ++ integer_to_list(ClauseIndex) ++ ", ["
          ++ wrangler_misc:format_search_paths(SearchPaths) ++ "]," ++ integer_to_list(TabWidth) ++ ").",
      {ok, {AnnAST, Info}} = wrangler_ast_server:parse_annotate_file(FileName, true, SearchPaths, TabWidth),
      {value, {module, CurrentModName}} = lists:keysearch(module, 1, Info),
      FileName1 = get_file_name(ModName, SearchPaths),
      {ok, {AnnAST1, _Info1}} = wrangler_ast_server:parse_annotate_file(FileName1, true, SearchPaths, TabWidth),
      case get_fun_clause_def(AnnAST1, FunName, Arity, ClauseIndex) of
          {ok, {Mod, _FunName, _Arity, FunClauseDef}} ->
              side_condition_analysis(FunClauseDef),
              Candidates = search_candidate_exprs(AnnAST, {Mod, CurrentModName}, FunName, FunClauseDef),
              fold_expression_0(FileName, Candidates, FunClauseDef, Cmd, Editor, SearchPaths, TabWidth);
          {error, _Reason} ->
              throw({error, "The specified funcion clause does not exist!"})
       end.
  
  get_file_name(ModName, SearchPaths) ->
  