anchor.diff:  
   -export([gen_fun_1/8, gen_fun_1_eclipse/8, gen_fun_2_eclipse/8]).
   
  +-define(DEFAULT_RANGE, {?DEFAULT_LOC, ?DEFAULT_LOC}).
   %% =====================================================================
   %% @spec generalise(FileName::filename(), Start::Pos, End::Pos, ParName::string(), SearchPaths::[string()])-> term()
   %%         Pos = {integer(), integer()}
  
positive.code: 				_ -> {Node, false}
  			    end;
  			nil -> if Arity==0 ->
  				    Exp1 =refac_util:update_ann(Exp, {range, {0,0}}),
  				    Args1 =refac_syntax:copy_attrs(Args, 
  								   refac_syntax:list(refac_syntax:list_elements(Args) ++[Exp1])), 
  
  
negative.code:     if (Exp_Export_Vars /=[]) ->
  	    {error, "The selected expression exports locally declared variable(s)!"};
         true -> Cs = refac_syntax:function_clauses(Fun),
  	       Vars0 = lists:foldl(fun(C,Accum)->Accum++ refac_util:get_bound_vars(C) end, [], Cs),
  	       case Exp_Free_Vars -- Vars0 of 
  		   [] ->
  		       Vars= lists:map(fun({X,_Y})->X end, Vars0),
  		       case lists:member(ParName, Vars) of 
  			   true ->
  			       {error, ("The given parameter name conflicts with the existing parameters or"++
  					" will change the semantics of the function to be generalised!")};
  			   _ ->
  			       ok
  		       end;
  		   _ -> {error, "The selected expression contains locally declared free variable(s)!"}
  	       end
      end.
  
  