anchor.diff:  
   rm_unrelated_exprs(_Files,_AnnAST, _ModName, _FunName, _Arity, [], _Expr, _Vars) ->
       [];
  -rm_unrelated_exprs(_Files,_AnnAST, _ModName, _FunName, _Arity,[E], Expr, Vars) ->
  -    FreeVars = refac_util:get_free_vars(E),
  -    ExportedVars = refac_util:get_var_exports(E),
  -    case (ExportedVars -- Vars =/= ExportedVars) of 
  -	true -> [E];
  -	false -> case FreeVars -- Vars =/= FreeVars of   %% HERE Should check whether the returned value depends on the slice criteron or not!!.
  -		     true ->
  -			 [E, refac_syntax:atom(undefined)];
  -		     _ ->
  -			 {Start1, End1} = refac_util:get_range(Expr),
  -			 {Start2, End2} =refac_util:get_range(E),
  -			 case (Start2 =< Start1) andalso (End1 =< End2) of 
  -			     true -> [E, refac_syntax:atom(undefined)];
  -			     _ -> [refac_syntax:atom(undefined)]
  -			 end
  -		 end
  -    end;
  +%% rm_unrelated_exprs(_Files,_AnnAST, _ModName, _FunName, _Arity,[E], Expr, Vars) ->
  +%%     FreeVars = refac_util:get_free_vars(E),
  +%%     ExportedVars = refac_util:get_var_exports(E),
  +%%     io:format("FreeVars:\n~p\n", [{Vars, FreeVars, ExportedVars}]),
  +%%     case (ExportedVars -- Vars =/= ExportedVars) of 
  +%% 	true -> io:format("E:\n~p\n", [E]),
  +%% 		[E];
  +%% 	false -> case FreeVars -- Vars =/= FreeVars of   %% HERE Should check whether the returned value depends on the slice criteron or not!!.
  +%% 		     true ->
  +%% 			 [E]; %% , refac_syntax:atom(undefined)];
  +%% 		     _ ->
  +%% 			 {Start1, End1} = refac_util:get_range(Expr),
  +%% 			 {Start2, End2} =refac_util:get_range(E),
  +%% 			 case (Start2 =< Start1) andalso (End1 =< End2) of 
  +%% 			     true -> [E];        %%, refac_syntax:atom(undefined)];
  +%% 			     _ -> [refac_syntax:atom(undefined)]
  +%% 			 end
  +%% 		 end
  +%%     end;
   rm_unrelated_exprs(Files, AnnAST, ModName, FunName, Arity, [E |Exprs], Expr, Vars) ->
       FreeVars = refac_util:get_free_vars(E),
       ExportedVars = refac_util:get_var_exports(E),
  
positive.code: 
  
  get_caller_funs(Files, {ModName, FunName, Arity}) ->
      CallGraph = refac_util:build_callgraph(Files, []),
      lists:flatmap(fun ({{_Caller, CallerDef}, Callee}) -> 
  			  case lists:member({ModName, FunName, Arity}, Callee) of
  			      true -> [CallerDef];
  
negative.code: 
  %% @spec forward_slice(Files:[filename()], AnnAST:syntaxTree(), ModName::atom(), FunDef::syntaxTree(), Expr::syntaxTree()) -> [syntaxTree()].
  %% @doc Forward slice the program with expression Expr, which in contained in function FunDef, as the slicing criterion.                     
   
  -spec(forward_slice/5::([filename()], syntaxTree(), atom(), syntaxTree(), syntaxTree())->
  	     [syntaxTree()]).
  forward_slice(Files, AnnAST, ModName, FunDef, Expr)  ->
  