anchor.diff:      FunName = refac_syntax:data(refac_syntax:function_name(Fun)),
       FunArity = refac_syntax:function_arity(Fun),
       Inscope_Funs = [{F, A} || {_M, F, A} <- refac_util:inscope_funs(Info)],
  -    case lists:member({FunName, FunArity + 1}, Inscope_Funs) of
  -      true -> throw({error, "Function " ++
  -		     atom_to_list(FunName) ++ "/" ++ 
  -		     integer_to_list(FunArity + 1) 
  -		     ++ " is already in scope!"});
  -      false -> ok
  +    NewArity = FunArity +1, 
  +    case lists:member({FunName, NewArity}, Inscope_Funs)  orelse
  +	erlang:is_builtin(erlang, FunName, NewArity) orelse
  +	erl_internal:bif(erlang, FunName, NewArity)
  +	of
  +	true -> throw({error, "Function " ++
  +		       atom_to_list(FunName) ++ "/" ++ 
  +		       integer_to_list(NewArity) 
  +		       ++ " is already in scope!"});
  +	false -> ok
       end,
       FunDefPos = get_fun_def_loc(Fun),
       ParName1 = list_to_atom(ParName),
  
positive.code:     end.
  
  
  -spec(gen_fun_1/11::(SideEffect::boolean(), FileName::filename(),ParName::atom(), FunName::atom(),
  		     Arity::integer(), FunDefPos::pos(), Exp::syntaxTree(), SearchPaths::[dir()],
  		     TabWidth::integer(), Dups::[{pos(), pos()}], LogCmd::string())
        -> {ok, [filename()]}).
  gen_fun_1(SideEffect, FileName,ParName, FunName, Arity, DefPos, Exp, SearchPaths,TabWidth, Dups, LogCmd) ->
      gen_fun_1(SideEffect, FileName,ParName, FunName, Arity, DefPos, Exp, SearchPaths,TabWidth,Dups, emacs, LogCmd).
  
  -spec(gen_fun_1_eclipse/11::(SideEffect::boolean(), FileName::filename(),ParName::atom(), FunName::atom(), 
  			    Arity::integer(), FunDefPos::pos(), Expr::syntaxTree(), SearchPaths::[dir()],
  			    TabWidth::integer(), Dups::[{pos(), pos()}], LogCmd::string()) 
        -> {ok, [{filename(), filename(),string()}]}).
  
negative.code: -spec generalise(FileName::filename(),Start::pos(), End::pos(),ParName::string(),
  		 SearchPaths::[dir()], TabWidth::integer()) ->
  	     {ok, [filename()]}
  		 |{multiple_instances, {atom(), atom(), integer(), pos(), syntaxTree(), bool(),[{pos(), pos()}], string()}}
  		 |{unknown_side_effect, {atom(), atom(),integer(), pos(), syntaxTree(), integer(),
  					 [{pos(), pos()}], [{pos(),pos()}], string()}}
  		 |{more_than_one_clause, {atom(), atom(), integer(), pos(), syntaxTree(), bool(),
  					  [{pos(), pos()}], [{pos(),pos()}], string()}}. 
  
  generalise(FileName, Start, End, ParName, SearchPaths, TabWidth) ->
      generalise(FileName, Start, End, ParName, SearchPaths, TabWidth, emacs).
  
  %% TO CHECK: Dialyzer says this function also returns {ok, [filename()]}, but it really shouldn't.
  %% I don't know where goes wrong.
  -spec generalise_eclipse(FileName::filename(), Start::pos(), End::pos(), ParName::string(),
  	                         SearchPaths::[dir()], TabWidth::integer()) ->
      {ok, [filename()]} |
  	| {ok, [{filename(), filename(), string()}]} |
  	{multiple_instances,  {ParName:: atom(), FunName::atom(), Arity::integer(),
  			       FunDefPos::pos(), Exp::syntaxTree(), SideEffect::boolean(),
  			       DupsInFun::[{pos(), pos()}], Cmd::string()}} |
  	{unknown_side_effect, {ParName::atom(), FunName::atom(), Arity::integer(),
  			       FunDefPos::pos(), Exp::syntaxTree(), NoOfClauses::integer(),
  			       DupsInFun::[{pos(), pos()}], DupsInClause::[{pos(), pos()}],
  			       Cmd::string()}} |
  	{more_than_one_clause, {ParName::atom(), FunName::atom(), Arity::integer(),
  				FunDefPos::pos(), Exp::syntaxTree(), SideEffect::boolean(),
  				DupsInFun::[{pos(), pos()}], DupsInClause::[{pos(), pos()}],
  				Cmd::string()}}.
  generalise_eclipse(FileName, Start, End, ParName, SearchPaths, TabWidth) ->
      generalise(FileName, Start, End, ParName, SearchPaths, TabWidth, eclipse).
      
  