anchor.diff:  instrument_term(Tree) ->
       case erl_syntax:type(Tree) of
   	application ->
  -	    Qualifier = erl_syntax:application_operator(Tree),
  -	    case erl_syntax:type(Qualifier) of
  -		atom ->
  -		    Function = erl_syntax:atom_value(Qualifier),
  -		    case Function of
  -                        demonitor ->
  -                            instrument_demonitor(instrument_subtrees(Tree));
  -                        halt ->
  -			    instrument_halt(instrument_subtrees(Tree));
  -			link ->
  -			    instrument_link(instrument_subtrees(Tree));
  -                        monitor ->
  -                            instrument_monitor(instrument_subtrees(Tree));
  -                        process_flag ->
  -                            instrument_process_flag(instrument_subtrees(Tree));
  -                        register ->
  -                            instrument_register(instrument_subtrees(Tree));
  -			spawn ->
  -			    instrument_spawn(instrument_subtrees(Tree));
  -			spawn_link ->
  -			    instrument_spawn_link(instrument_subtrees(Tree));
  -                        spawn_monitor ->
  -                            instrument_spawn_monitor(instrument_subtrees(Tree));
  -                        unlink ->
  -                            instrument_unlink(instrument_subtrees(Tree));
  -                        unregister ->
  -                            instrument_unregister(instrument_subtrees(Tree));
  -                        whereis ->
  -                            instrument_whereis(instrument_subtrees(Tree));
  -			_Other -> instrument_subtrees(Tree)
  -		    end;
  -                module_qualifier ->
  -                    Argument = erl_syntax:module_qualifier_argument(Qualifier),
  -                    Body = erl_syntax:module_qualifier_body(Qualifier),
  -                    case erl_syntax:type(Argument) =:= atom andalso
  -                        erl_syntax:type(Body) =:= atom of
  -                        true ->
  -                            Module = erl_syntax:atom_value(Argument),
  -                            case Module of
  -                                erlang ->
  -                                    Function = erl_syntax:atom_value(Body),
  -                                    case Function of
  -                                        demonitor ->
  -                                            instrument_demonitor(
  -                                              instrument_subtrees(Tree));
  -                                        halt ->
  -					    instrument_halt(
  -					      instrument_subtrees(Tree));
  -                                        link ->
  -                                            instrument_link(
  -                                              instrument_subtrees(Tree));
  -                                        monitor ->
  -                                            instrument_monitor(
  -                                              instrument_subtrees(Tree));
  -                                        process_flag ->
  -                                            instrument_process_flag(
  -                                              instrument_subtrees(Tree));
  -                                        register ->
  -                                            instrument_register(
  -                                              instrument_subtrees(Tree));
  -                                        spawn ->
  -                                            instrument_spawn(
  -                                              instrument_subtrees(Tree));
  -                                        spawn_link ->
  -                                            instrument_spawn_link(
  -                                              instrument_subtrees(Tree));
  -                                        spawn_monitor ->
  -                                            instrument_spawn_monitor(
  -                                              instrument_subtrees(Tree));
  -                                        unlink ->
  -                                            instrument_unlink(
  -                                              instrument_subtrees(Tree));
  -                                        unregister ->
  -                                            instrument_unregister(
  -                                              instrument_subtrees(Tree));
  -                                        whereis ->
  -                                            instrument_whereis(
  -                                              instrument_subtrees(Tree));
  -                                        yield -> instrument_yield();
  -                                        _Other -> instrument_subtrees(Tree)
  -                                    end; 
  -                                _Other -> instrument_subtrees(Tree)
  -                            end;
  -                        false -> instrument_subtrees(Tree)
  -                    end;
  -		_Other -> instrument_subtrees(Tree)
  +	    NewTree = instrument_subtrees(Tree),
  +	    case get_mfa(NewTree) of
  +		no_instr -> NewTree;
  +		Mfa -> instrument_application(Mfa)
   	    end;
   	infix_expr ->
   	    Operator = erl_syntax:infix_expr_operator(Tree),
  
positive.code: -include("gen.hrl").
  
  -define(INCLUDE_DIR, filename:absname("include")).
  
  %% Delete and purge all modules in Files.
  -spec delete_and_purge([file()]) -> 'ok'.
  
negative.code: 		'!' -> instrument_send(instrument_subtrees(Tree));
  		_Other -> instrument_subtrees(Tree)
  	    end;
  	receive_expr -> instrument_receive(instrument_subtrees(Tree));
  	underscore -> new_underscore_variable();
  	_Other -> instrument_subtrees(Tree)
      end.
  
  %% Return {ModuleAtom, FunctionAtom, ArgTree} for a function that is going
  %% to be instrumented or 'no_instr' otherwise.
  get_mfa(Tree) ->
      Qualifier = erl_syntax:application_operator(Tree),
      case erl_syntax:type(Qualifier) of
  	atom ->
  	    Function = erl_syntax:atom_value(Qualifier),
  	    ArgTree = erl_syntax:application_arguments(Tree),
  	    case lists:member(Function, ?INSTR_ERLANG_NO_MOD) of
  		true -> {erlang, Function, ArgTree};
  		false -> no_instr
  	    end;
  	module_qualifier ->
  	    ModTree = erl_syntax:module_qualifier_argument(Qualifier),
  	    FunTree = erl_syntax:module_qualifier_body(Qualifier),
  	    case erl_syntax:type(ModTree) =:= atom andalso
  		erl_syntax:type(FunTree) =:= atom of
  		true ->
  		    Module = erl_syntax:atom_value(ModTree),
  		    Function = erl_syntax:atom_value(FunTree),
  		    case Module of
  			erlang ->
  			    case lists:member(Function, ?INSTR_ERLANG) of
  				true ->
  				    ArgTree =
  					erl_syntax:application_arguments(Tree),
  				    {Module, Function, ArgTree};
  				false -> no_instr
  			    end;
  			_Other -> no_instr
  		    end;
  		false -> no_instr
  	    end;
  	_Other -> no_instr
      end.
  
  %% Instrument an application (function call).
  instrument_application({erlang, Fun, ArgTree}) ->
      ModTree = erl_syntax:atom(sched),
      FunTree = erl_syntax:atom(list_to_atom("rep_" ++ atom_to_list(Fun))),
      erl_syntax:application(ModTree, FunTree, ArgTree).
  
  %% Instrument a receive expression.
  %% -----------------------------------------------------------------------------
  