anchor.diff:  fold_expr_by_name(FileName, ModName, FunName, Arity, ClauseIndex, SearchPaths) ->
       refac_fold_expression:fold_expr_by_name(FileName, ModName, FunName, Arity, ClauseIndex, SearchPaths).
   
  -
  +%%@private
   -spec(fold_expr_by_name_eclipse/6::(filename(), string(), string(), string(), string(), [dir()]) ->
   	     {ok, [{{{integer(), integer()}, {integer(), integer()}}, syntaxTree()}]} 
   		 | {error, string()}).
  
positive.code: %% ==================================================================================================
  %% @doc Search for clones of a user-selected expression/expression sequence in the current file.
  %% 
  %% <p> This functionality allows to search for clones of a selected expression or expression 
  %% sequence.  The found clones are syntactically identical to the user-selected code fragment after consistent renaming of variables, 
  %% except for variations in literals, layout and comments. 
  %% </p>
  %% <p> When the selected code contains multiple, but non-continuous sequence of, expressions, the first
  %% continuous sequence of expressions is taken as the user-selected expression. A continuous sequence of
  %% expressions is a sequence of expressions separated by ','. </p>
  %% ==================================================================================================
  %% @spec expression_search(FileName::filename(),Start::Pos, End::Pos) -> term()
  
  -spec(expression_search/3::(filename(), pos(), pos()) -> {ok, [{integer(), integer(), integer(), integer()}]} | {error, string()}).
  expression_search(FileName, Start, End) ->
      refac_expr_search:expr_search(FileName, Start, End).
  
  
  
  %% =====================================================================================================
  %%@doc Introduce a new function to represent a user-selected expression or expression sequence.
  %% <p> This refactoring allows the user to introduce a new function to represent a selected expression or expression 
  %% sequence, and replace the selected expression/expression sequence with a call to the newly introduced function.  Those free variables
  %% within the expression/expression sequence become the formal parameters of the function. </p>
  %% =====================================================================================================
  %% @spec fun_extraction(FileName::filename(), Start::Pos, End::Pos, FunName::string()) -> term()
  
  -spec(fun_extraction/4::(filename(), pos(), pos(), string()) ->
  	      {error, string()} | {ok, string()}).
  fun_extraction(FileName, Start, End, FunName) -> 
      refac_new_fun:fun_extraction(FileName, Start, End, FunName).
  
  -spec(fun_extraction_eclipse/4::(filename(), pos(), pos(), string()) ->
  	      {error, string()} | {ok, [{filename(), filename(), string()}]}).
  fun_extraction_eclipse(FileName, Start, End, FunName) -> 
  
negative.code: %% of existing variables in the inner scopes, i.e., renaming to the new name should not change the semantics of the 
  %% program.</li>
  %% </p>
  %% @spec rename_var(FileName::filename(), Line::integer(), Col::integer(), NewName::string(), SearchPaths::[dir()]) ->{error, string()} | {ok, string()}
  
  -spec(rename_var/5::(filename(), integer(), integer(), string(), [dir()]) ->
  	     {error, string()} | {ok, string()}).
  rename_var(FileName, Line, Col, NewName, SearchPaths) ->
      refac_rename_var:rename_var(FileName, Line, Col, NewName, SearchPaths).
  
  %% @private
  -spec(rename_var_eclipse/5::(filename(), integer(), integer(), string(), [dir()]) ->
  	     {error, string()} | {ok, [{filename(), filename(), string()}]}).
  rename_var_eclipse(FileName, Line, Col, NewName, SearchPaths) ->
  