anchor.diff:  %% =====================================================================
  -%% Refactoring: Rename a variable name.
  +%% Some program slicing algorithms.
   %%
  -%% Copyright (C) 2006-2008  Huiqing Li, Simon Thompson
  -
  +%% Copyright (C) 2006-2009  Huiqing Li, Simon Thompson
   
   %% The contents of this file are subject to the Erlang Public License,
   %% Version 1.1, (the "License"); you may not use this file except in
  
positive.code:     case NewBody == [refac_syntax:tuple([refac_syntax:atom(error), refac_syntax:atom("Error with evaluation")])] of
        true -> [];
        _ ->
  	  BoundVars = lists:concat(lists:map(fun (P) -> refac_util:get_bound_vars(P) end, Patterns)),
  	  case FreeVars -- BoundVars =/= FreeVars of
  	    true ->  %% Expr uses some of the vars declared in Patterns.
  		C1 = refac_syntax:clause(Patterns, none, NewBody),
  
negative.code: %% the License for the specific language governing rights and limitations
  %% under the License.
  
  %% @private
  %% @copyright 2006-2009 Huiqing Li, Simon Thompson
  %%
  %% @author Huiqing Li <hl@kent.ac.uk>
  %%   [http://www.cs.kent.ac.uk/projects/forse]
  
  %% @version  0.1
  %%
  %% @doc Forward and backward slicing of Erlang programs. The current implementation does 
  %%      not handle message passing, and is not fully tested yet.
  %% @end
  
  -module(refac_slice). 
  
  -export([forward_slice/5, backward_slice/5]). 
  
  -export([sliced_funs/0]).
  
  %% @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.                     
  forward_slice(Files, AnnAST, ModName, FunDef, Expr)  ->
      start_slice_env_process(),
      Res = forward_slice_1(Files, AnnAST, ModName, {FunDef, Expr}),
      stop_slice_env_process(),
  