anchor.diff:  %% guide you through the candidates found one by one, and ask you to decide whether to merge.
   %%</p>
   
  -%%-spec(merge_forall/3::(FileName::filename, SearchPaths::[dir()], TabWidth::integer()) ->
  -%%	     {error, string()} |{not_found, string()} |{ok, [{integer(), integer(), integer(), integer(), string()}], string()}).
  -merge_forall(FileName, SearchPaths, TabWidth) ->
  -    try_refactoring(refac_new_let, merge_forall, [FileName, SearchPaths, TabWidth]).
  -
  -%%@private
  -%%-spec(merge_forall_1/5::(FileName::filename, Candidates::[{{integer(), integer(), integer(), integer()}, string()}],
  -%%		      SearchPaths::[dir()], TabWidth::integer(), Cmd::string()) -> {ok, [filename()]}).
  -merge_forall_1(FileName, Candidates, SearchPaths, TabWidth, Cmd) ->
  -    try_refactoring(refac_new_let, merge_forall_1, [FileName, Candidates, SearchPaths, TabWidth, Cmd]).
  -
  -%%@private
  -%%-spec(merge_forall_eclipse/3::(FileName::filename(), SearchPaths::[dir()], TabWidth::integer()) ->
  -%%			{error, string()}| {not_found, string()} |{ok, [{{{integer(), integer()}, {integer(), integer()}}, syntaxTree()}]}).
  +-spec(merge_forall/4::(FileName::filename, SearchPaths::[dir()], context(), TabWidth::integer()) ->
  +	     {error, string()} |{not_found, string()} |{ok, [{integer(), integer(), integer(), integer(), string()}], string()}).
  +merge_forall(FileName, SearchPaths, Context, TabWidth) ->
  +    try_refac(refac_new_let, merge_forall, [FileName, SearchPaths, Context, TabWidth]).
  +
  +%%@private
  +-spec(merge_forall_1/6::(FileName::filename, Candidates::[{{integer(), integer(), integer(), integer()}, string()}],
  +		      SearchPaths::[dir()], context(), TabWidth::integer(), Cmd::string()) -> {ok, [filename()]}).
  +merge_forall_1(FileName, Candidates, SearchPaths, Context, TabWidth, Cmd) ->
  +    try_refac(refac_new_let, merge_forall_1, [FileName, Candidates, SearchPaths, Context, TabWidth, Cmd]).
  +
  +%%@private
  +-spec(merge_forall_eclipse/3::(FileName::filename(), SearchPaths::[dir()], TabWidth::integer()) ->
  +			{error, string()}| {not_found, string()} |{ok, [{{{integer(), integer()}, {integer(), integer()}}, syntaxTree()}]}).
   merge_forall_eclipse(FileName, SearchPaths, TabWidth) ->
  -    try_refactoring(refac_new_let, merge_forall_eclipse, [FileName, SearchPaths, TabWidth]).
  -
  -%%@private
  -%%-spec(merge_forall_1_eclipse/4::(FileName::filename(), Candidates::[{{{integer(), integer()}, {integer(), integer()}}, syntaxTree()}],
  -%%				 SearchPaths::[dir()], TabWidth::integer()) -> 
  -%%		{error, string()}|{'ok', [{filename(), filename(),string()}]}).
  +    try_refac(refac_new_let, merge_forall_eclipse, [FileName, SearchPaths, TabWidth]).
  +
  +%%@private
  +-spec(merge_forall_1_eclipse/4::(FileName::filename(), Candidates::[{{{integer(), integer()}, {integer(), integer()}}, syntaxTree()}],
  +				 SearchPaths::[dir()], TabWidth::integer()) -> 
  +		{error, string()}|{'ok', [{filename(), filename(),string()}]}).
   merge_forall_1_eclipse(FileName, Candidates, SearchPaths, TabWidth) ->
  -    try_refactoring(refac_new_let, merge_forall_1_eclipse, [FileName, Candidates, SearchPaths, TabWidth]).
  +    try_refac(refac_new_let, merge_forall_1_eclipse, [FileName, Candidates, SearchPaths, TabWidth]).
   
   
   %% =============================================================================================
  
positive.code: %% input the parameters needed.
  %% </p>
  
  %%-spec(similar_code_detection/6::(DirFileList::[filename()|dir()], MinLen::string(), MinFreq::string(), MinScore::string(), 
  %%				 SearchPaths::[dir()], TabWidth::integer()) -> {ok, string()}).
  similar_code_detection(DirFileList, MinLen, MinFreq, SimiScore1, SearchPaths, TabWidth) ->
      refac_sim_code:sim_code_detection(DirFileList, MinLen, MinFreq, SimiScore1, SearchPaths, TabWidth) .
    
  
  %%@private
  % @doc Identical expression search in the current Erlang buffer.
  %% 
  %% <p> This functionality allows searching for clones of a selected expression or expression 
  %% sequence.  The found clones are syntactically identical to the code fragment selected  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>
  %% Usage: highlight the expression/expression sequence of interest, then selected  <em> Identical Expression Search in Buffer </em> from 
  %% <em> Identical Code Detection</em>.
  %%-spec(identical_expression_search_in_buffer/5::(filename(), pos(), pos(), [dir()], integer()) -> 
  %%    {ok, [{filename(),{{integer(), integer()}, {integer(), integer()}}}]}| {error, string()}).
  identical_expression_search_in_buffer(FileName, Start, End, SearchPaths, TabWidth) ->
      try_refactoring(refac_expr_search, expr_search_in_buffer, [FileName, Start, End, SearchPaths, TabWidth]).
  
  
  %% ==================================================================================================
  %%@private
  %% @doc Identical expression search across mutlple Erlang modules.
  %%
  %% <p> This functionality allows searching for clones of a selected expression or expression 
  %% sequence.  The found clones are syntactically identical to the code fragment selected  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>
  %% Usage: highlight the expression/expression sequence of interest, then selected  <em> Identical Expression Search in Dirs </em> from 
  %% <em> Identical Code Detection</em>.
  %%-spec(identical_expression_search_in_dirs/5::(filename(), pos(), pos(), [dir()], integer()) -> 
  %%    {ok, [{filename(),{{integer(), integer()}, {integer(), integer()}}}]}| {error, string()}).
  identical_expression_search_in_dirs(FileName, Start, End, SearchPaths, TabWidth) ->
      try_refactoring(refac_expr_search, expr_search_in_dirs, [FileName, Start, End, SearchPaths, TabWidth]).
  
  %%@private
  %%-spec(expr_search_eclipse/4::(filename(), pos(), pos(), integer()) ->
  %%				   {ok, [{{integer(), integer()}, {integer(), integer()}}]} | {error, string()}).
  expr_search_eclipse(FileName, Start, End, TabWidth) ->
      try_refactoring(refac_expr_search, expr_search_eclipse, [FileName, Start, End, TabWidth]).
  
  %% ==================================================================================================
  %% @doc Search expression search in the current Erlang buffer.
  
negative.code: %% select <em> Move Definition to Another Module</em> from the <em> Refactor </em> menu, 
  %% Wrangler will then  prompt to enter the target module name in the mini-buffer. 
  %% </p>
  -spec(move_fun/7::(filename(),integer(),integer(), string(), [dir()], context(), integer())
          -> {ok, [filename()]} | {question, string()} |{error, string()}).
  move_fun(FileName, Line, Col, TargetModName,SearchPaths, Context, TabWidth) ->
      try_refac(refac_move_fun, move_fun, [FileName, Line, Col, TargetModName, SearchPaths, Context, TabWidth]).
  
  
  %%@private
  -spec(move_fun_1/8::(filename(),integer(),integer(), string(),  boolean(),[dir()], context(), integer())
        -> {ok, [filename()]} |{error, string()}).
  move_fun_1(FileName, Line, Col, TargetModName, CheckCond, SearchPaths, Context, TabWidth) ->
      try_refac(refac_move_fun, move_fun_1, [FileName, Line, Col, TargetModName, CheckCond, SearchPaths, Context, TabWidth]).
  
  %%@private
  -spec(move_fun_eclipse/6::(filename(),integer(),integer(), string(), [dir()], integer())
          -> {ok, [{filename(), filename(), string()}]} | {question, string()} | {error, string()}).
  move_fun_eclipse(FileName, Line, Col, TargetModName,SearchPaths, TabWidth) ->
      try_refac(refac_move_fun, move_fun_eclipse, [FileName, Line, Col, TargetModName, SearchPaths, TabWidth]).
  
  %%@private
  -spec(move_fun_1_eclipse/6::(filename(),integer(),integer(), string(), [dir()], integer())
          -> {ok, [{filename(), filename(), string()}]} |{error, string()}).
  move_fun_1_eclipse(FileName, Line, Col, TargetModName,SearchPaths, TabWidth) ->
      try_refac(refac_move_fun, move_fun_1_eclipse, [FileName, Line, Col, TargetModName, SearchPaths, TabWidth]).
  
  
  %% ==================================================================================
  