anchor.diff:  	[] ->
   	    [refac_syntax:block_expr(Body)];
   	_ -> 
  +	    Patterns = refac_syntax:clause_patterns(C),
  +	    NewPatterns = lists:map(fun(P) ->
  +					    BdVars = refac_util:get_bound_vars(P),
  +					    case (FreeVarsInBody -- BdVars) =/= FreeVarsInBody of 
  +						true -> P;
  +						_ -> refac_syntax:underscore()
  +					    end
  +				    end, Patterns),
  +	    C1 = refac_syntax:clause(NewPatterns, refac_syntax:clause_guard(C), refac_syntax:clause_body(C)), 
   	    SlicePoints = collect_app_sites(AnnAST, ModName, FunName, Arity),
   	    case SlicePoints of 
   		[] -> [refac_syntax:block_expr(Body)]; %% could not find any use sites of this function.
   		_ -> Slices = lists:map(fun({Fun, S}) ->
  -						lists:flatmap(fun(E) -> backward_slice(Files, AnnAST, ModName, Fun, E) end, S)
  +						PsCs = lists:zip(NewPatterns, S),
  +						lists:flatmap(fun({P, E}) ->
  +								      case refac_syntax:type(P) of 
  +									  underscore -> [refac_syntax:atom('_')];
  +									  _ -> backward_slice(Files, AnnAST, ModName, Fun, E)
  +								      end
  +							      end, PsCs)
   					end,  SlicePoints),
  -		     FunExpr = refac_syntax:fun_expr([C]),
  +		     FunExpr = refac_syntax:fun_expr([C1]),
   		     Result = lists:map(fun(S) ->refac_syntax:application(FunExpr, S) end, Slices),
   		     Result       
   	    end
  
positive.code: -export([forward_slice/5, backward_slice/5]). 
  
  -include("../hrl/wrangler.hrl").
  
  %% @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.                     
  
negative.code: 		  end, CallGraph).
      
  
  start_slice_env_process() ->    
      case erlang:whereis(sliced_funs) of 
  	undefined -> ok;
  