anchor.diff:  %%% 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})
  +    Ms = dict:append_list(M, [{Arity, Def}], St#epp.macs),
  +    try dict:append_list(M, [{Arity, macro_uses(Def)}], St#epp.uses) of
  +        U ->
  +            scan_toks(F, St#epp{uses=U, macs=Ms})
       catch
  -        _:{error, Line, Reason} ->
  +        {error, Line, Reason} ->
               epp_reply(F, {error,{Line,epp,Reason}}),
               wait_req_scan(St)
       end.
  
positive.code:                     end;
                  {ok, _PreDef} ->
                      %% Predefined macros: cannot be overloaded
                      epp_reply(From, {error,{loc(Mac),epp,{redefine_predef,M}}}),
                      wait_req_scan(St);
                  error ->
  
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
  