anchor.diff:  %% ==================================================================================================
   %% @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 
  +%% <p> This functionality allows searchingh 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()
  +%% sequence, and replace the selected expression/expression sequence with a call to the new 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()) ->{error, string()} | {ok, string()}
   
   -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).
   
  +%%@private
   -spec(fun_extraction_eclipse/4::(filename(), pos(), pos(), string()) ->
   	      {error, string()} | {ok, [{filename(), filename(), string()}]}).
   fun_extraction_eclipse(FileName, Start, End, FunName) -> 
  
positive.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()])
  %% -> term()
  %%    
  
  -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).
  
  
  -spec(rename_var_eclipse/5::(filename(), integer(), integer(), string(), [dir()]) ->
  	     {error, string()} | {ok, [{filename(), filename(), string()}]}).
  rename_var_eclipse(FileName, Line, Col, NewName, SearchPaths) ->
  
negative.code: %% 	    dets:close(TraceCacheFile);
  %% 	{error, Reason}  -> eralng:error(Reason)
  %%     end.    
  