anchor.diff:  -define(ATTR_STRIP, [type, spec, opaque, export_type, import_type]).
   
   %% Instrumented auto-imported functions of 'erlang' module.
  --define(INSTR_ERLANG_NO_MOD,
  +-define(INSTR_ERL_FUN,
   	[{demonitor, 1}, {demonitor, 2}, {exit, 2}, {halt, 0},
            {halt, 1}, {link, 1}, {monitor, 2}, {process_flag, 2},
            {register, 2}, {spawn, 1}, {spawn, 3}, {spawn_link, 1},
  
positive.code: 	_Other -> instrument_subtrees(Tree)
      end.
  
  %% Return {ModuleAtom, FunctionAtom, ArgTree} for a function call 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),
              needs_instrument(erlang, Function, ArgTree, ?INSTR_ERLANG_NO_MOD);
  	module_qualifier ->
  	    ModTree = erl_syntax:module_qualifier_argument(Qualifier),
  	    FunTree = erl_syntax:module_qualifier_body(Qualifier),
  
negative.code: 	 {whereis, 1}]).
  
  %% Instrumented functions called as erlang:FUNCTION.
  -define(INSTR_ERL_MOD_FUN,
  	[{erlang, send, 2}, {erlang, send, 3}] ++ 
  	[{erlang, F, A} || {F, A} <- ?INSTR_ERL_FUN]).
  
  %% Instrumented mod:fun.
  -define(INSTR_MOD_FUN, ?INSTR_ERL_MOD_FUN).
  
  %% Module containing replacement functions.
  -define(REP_MOD, rep).
  