anchor.diff:      end.
   
   rename_fun_command_1(FileName, OldFunName, Arity, NewFunName, SearchPaths, TabWidth) ->
  -    {ok, {AnnAST, Info}} = refac_util:parse_annotate_file(FileName, true, SearchPaths, TabWidth),
  +    {ok, {AnnAST, Info}} = wrangler_ast_server:parse_annotate_file(FileName, true, SearchPaths, TabWidth),
       OldFunNameAtom = list_to_atom(OldFunName),
       NewFunNameAtom = list_to_atom(NewFunName),
       {ok, ModName} = get_module_name(Info),
  
positive.code:     NewNameStr = atom_to_list(NewNameAtom),
      Pid = refac_atom_utils:start_atom_process(),
      ?wrangler_io("The current file under refactoring is:\n~p\n", [FileName]),
      {AnnAST1, _C} = do_rename_fun(AnnAST, {Mod, OldFunNameAtom, Arity}, {DefinePos, NewNameStr}),
      refac_atom_utils:check_unsure_atoms(FileName, AnnAST1, [OldFunNameAtom], f_atom, Pid),
      case refac_misc:is_exported({OldFunNameAtom, Arity}, Info) of
  	true ->
  	    ?wrangler_io("\nChecking possible client modules in the following search paths: \n~p\n", [SearchPaths]),
  	    ClientFiles = refac_util:get_client_files(FileName, SearchPaths),
  	    try
  		rename_fun_in_client_modules(ClientFiles, {Mod, OldFunNameAtom, Arity},
  					     NewNameAtom, SearchPaths, TabWidth, Pid)
  	    of
  		Results ->
  		    HasWarningMsg = refac_atom_utils:has_warning_msg(Pid),
  		    refac_atom_utils:output_atom_warning_msg(Pid, not_renamed_warn_msg(OldFunNameAtom), renamed_warn_msg(OldFunNameAtom)),
  		    refac_atom_utils:stop_atom_process(Pid),
  		    refac_util:write_refactored_files([{{FileName, FileName}, AnnAST1}| Results],
  						      HasWarningMsg, Editor, TabWidth, Cmd)
  	    catch
  		throw:Err ->
  		    refac_atom_utils:stop_atom_process(Pid),
  
negative.code:       _ -> false
      end.
  
  rename_fun_in_client_module_1({Tree, Info}, {M, OldName, Arity}, NewNameStr) ->
      NewNameAtom = list_to_atom(NewNameStr),
      case lists:keysearch(module, 1, Info) of
  	{value, {module, ClientModName}} ->
  	    Inscope_Funs = [{F, A} || {_M, F, A} <- refac_misc:inscope_funs(Info)],
  	    case lists:member({NewNameAtom, Arity}, Inscope_Funs)
  		    and lists:member({OldName, Arity}, Inscope_Funs)
  		of
  		true ->
  		    throw({error, "The new function name causes confliction in module '"
  				     ++ atom_to_list(ClientModName) ++ "'"});
  		_ -> ok
  	    end;
  	_ -> ok
      end,
      ast_traverse_api:full_tdTP(fun do_rename_fun_in_client_module_1/2, Tree,
  			       {{M, OldName, Arity}, NewNameAtom}).
  
  do_rename_fun_in_client_module_1(Tree, {{M, OldName, Arity}, NewName}) ->
      case refac_syntax:type(Tree) of
  