anchor.diff:      %% has to be `recon:pid_term()'.
       [recon_lib:term_to_pid(PidTerm)].
   
  -validate_mfa(Mod, Fun, Args) when is_function(Args) ->
  -    validate_mfa(Mod, Fun, fun_to_ms(Args));
  -validate_mfa(Mod, Fun, Args) ->
  +validate_tspec(Mod, Fun, Args) when is_function(Args) ->
  +    validate_tspec(Mod, Fun, fun_to_ms(Args));
  +validate_tspec(Mod, Fun, Args) ->
       BannedMods = ['_', ?MODULE, io, lists],
       %% The banned mod check can be bypassed by using
       %% match specs if you really feel like being dumb.
  
positive.code:     ok.
  
  %% @equiv calls({Mod, Fun, Args}, Max, [])
  -spec calls(mfa(), max()) -> num_matches().
  calls({Mod, Fun, Args}, Max) ->
      calls([{Mod,Fun,Args}], Max, []).
  
  
negative.code: %%      of 50 per second at most:
  %%      ``recon_trace:calls({queue, '_', '_'}, {50,1000}, [{pid, Pid}])''</li>
  %%  <li>Print the traces with the function arity instead of literal arguments:
  %%      `recon_trace:calls(TSpec, Max, [{args, arity}])'</li>
  %%  <li>Matching the `filter/2' functions of both `dict' and `lists' modules,
  %%      across new processes only:
  %%      `recon_trace:calls([{dict,filter,2},{lists,filter,2}], 10, [{pid, new]})'</li>
  