anchor.diff:      Body = refac_syntax:clause_body(hd(refac_syntax:function_clauses(NewFun1))),
       Body1 = rm_unused_exprs(Body),  %%Qn: how about the guard expression?
       NewFun2 = refac_syntax:function(FunName, [refac_syntax:clause(Patterns, none, Body1)]),
  -    %%io:format("Fun after slicing:\n"),
  -    %%io:format(refac_prettypr:format(NewFun2)),				    
  -    %% Body1.
       NewFun2.
       
   
  
positive.code: 
  
  get_caller_funs(Files, {ModName, FunName, Arity}) ->
      CallGraph = refac_util:build_call_graph(Files, []),
      lists:flatmap(fun ({{_Caller, CallerDef}, Callee}) -> 
  			  case lists:member({ModName, FunName, Arity}, Callee) of
  			      true -> [CallerDef];
  
negative.code: sliced_funs(State) ->
      receive
  	{From, get, Key} ->
  	    Res = case lists:keysearch(Key, 1, State) of
  		      {value, {Key, Value}} ->
  			   {sliced_funs, value, Value};
  		      false -> {sliced_funs, false}
  		  end,
  	    From ! Res,
  	    sliced_funs(State);
  	{add, {Key, Value}} ->
  	    case lists:keysearch(Key, 1, State) of 
  		    {value, {Key, _}} ->  %% This should not happen.
  			State1 =lists:keyreplace(Key,1, State, {Key, Value}), 
  			sliced_funs(State1);
  		    false -> sliced_funs([{Key, Value}|State])
  		end;
  	 {From, get_all} ->
  	    From ! {sliced_funs, State},
  	    sliced_funs(State);
  	 stop ->
  