anchor.diff:  -spec(rename_process/5::(filename(), integer(), integer(), string(), [dir()]) ->
   	       {error, string()} | {undecidables, string()}| {ok, [filename()]}).
   rename_process(FileName, Line, Col, NewName, SearchPaths) ->
  -    refac_rename_process:rename_process(FileName, Line, Col, NewName, SearchPaths).
  +    try_refactoring(refac_rename_process, rename_process, [FileName, Line, Col, NewName, SearchPaths]).
   
   
   
   -spec(new_macro/5::(filename(), pos(), pos(), string(), [dir()]) ->
   	      {error, string()} | {ok, string()}).
   new_macro(FileName, Start, End, MacroName, SearchPaths) -> 
  -    refac_new_macro:new_macro(FileName, Start, End, MacroName, SearchPaths).
  -
  -
  +    try_refactoring(refac_new_macro, new_macro, [FileName, Start, End, MacroName, SearchPaths]).
  +
  +
  +
  +try_refactoring(Mod, Fun, Args) ->
  +    case catch apply(Mod, Fun, Args) of 
  +	{ok, Res} ->
  +	    {ok, Res};
  +	{error, Reason} -> {error, Reason};
  +	_  -> {error, "Wrangler failed to perform this refactoring, please report error to erlang-refactor@kent.ac.uk."}
  +    end.
  +
  +    
   
   
   
  
positive.code: -spec(add_a_tag/5::(filename(), integer(), integer(), string(), [dir()]) ->
  	     {error, string()} | {ok, [filename()]}).
  add_a_tag(FileName, Line, Col, Tag, SearchPaths) ->
      refac_add_a_tag:add_a_tag(FileName, Line, Col, Tag, SearchPaths).
  
  
  
  
negative.code: %%         Pos = {integer(), integer()}
  -spec(generalise/5::(filename(),pos(), pos(),string(), dir()) -> {ok, string()} | {error, string()}).
  generalise(FileName, Start, End, ParName, SearchPaths) ->
      try_refactoring(refac_gen, generalise, [FileName, Start, End, ParName,  SearchPaths]).
  
  %%@private
  -spec(generalise_eclipse/5::(filename(),pos(), pos(),string(), dir()) -> {ok, [{filename(), filename(), string()}]}).
  generalise_eclipse(FileName, Start, End, ParName, SearchPaths) ->
      try_refactoring(refac_gen, generalise_eclipse, [FileName, Start, End, ParName,  SearchPaths]).
  
  %%@private
  -spec(gen_fun_1_eclipse/7::(boolean(), filename(),atom(), atom(), integer(), pos(), syntaxTree()) -> {ok, [{filename(), filename(),string()}]}).
  gen_fun_1_eclipse(SideEffect, FileName, ParName, FunName, Arity, DefPos, Expr) ->
      try_refactoring(refac_gen, gen_fun_1_eclipse, [SideEffect, FileName, ParName, FunName, Arity, DefPos, Expr]).
  
  %%@private
  -spec(gen_fun_2_eclipse/7::(filename(),atom(), atom(), integer(), pos(), syntaxTree(), [dir()]) -> {ok, [{filename(), filename(), string()}]}).
  gen_fun_2_eclipse(FileName, ParName, FunName, Arity, DefPos, Expr, SearchPaths) ->
      try_refactoring(refac_gen, gen_fun_2_eclipse, [FileName, ParName, FunName, Arity, DefPos, Expr, SearchPaths]).
  
  %% ================================================================================
  %% @doc Move a function definition from its current module to another module.
  