anchor.diff:                      end;
                   {ok, _PreDef} ->
                       %% Predefined macros: cannot be overloaded
  +                    %% (There are currently no predefined F(...) macros.)
                       epp_reply(From, {error,{loc(Mac),epp,{redefine_predef,M}}}),
                       wait_req_scan(St);
                   error ->
  
positive.code: %%% is detected, an error message is thrown.
  
  scan_define_cont(F, St, M, {Arity, Def}) ->
      try
          Ms = dict:append_list(M, [{Arity, Def}], St#epp.macs),
          U = dict:append_list(M, [{Arity, macro_uses(Def)}], St#epp.uses),
          scan_toks(F, St#epp{uses=U, macs=Ms})
      catch
          _:{error, Line, Reason} ->
              epp_reply(F, {error,{Line,epp,Reason}}),
              wait_req_scan(St)
      end.
  
negative.code: count_args([], Lm, M, _NbArgs) ->
      throw({error,Lm,{arg_error,M}});
  count_args(_Toks, Lm, M, _NbArgs) ->
      throw({error,Lm,{mismatch,M}}). % Cannot happen.
  
  %% macro_arg([Tok], [ClosePar], [ArgTok]) -> {[ArgTok],[RestTok]}.
  %%  Collect argument tokens until we hit a ',' or a ')'. We know a
  