anchor.diff:  %% scan_endif(Tokens, EndifToken, From, EppState)
   %%  If we are in an if body then exit it, else report an error.
   
  -scan_endif([{dot,_Ld}], Endif, From, St) ->
  +scan_endif([{dot,_Ad}], Endif, From, St) ->
       case St#epp.istk of
   	[_I|Cis] ->
   	    scan_toks(From, St#epp{istk=Cis});
  
positive.code: macro_expansion([], T0) -> throw({error,loc(T0),premature_end}).
  
  %% expand_macros(Tokens, St)
  %% expand_macro(Tokens, MacroToken, RestTokens)
  %%  Expand the macros in a list of tokens, making sure that an expansion
  %%  gets the same location as the macro call.
  
  expand_macros(MacT, M, Toks, St) ->
      #epp{macs=Ms,uses=U} = St,
      Lm = loc(MacT),
      Tinfo = element(2, MacT),
      case expand_macro1(Lm, M, Toks, Ms) of
  	{ok,{none,Exp}} ->
  	    check_uses([{M,none}], [], U, Lm),
  	    Toks1 = expand_macros(expand_macro(Exp, Tinfo, [], #{}), St),
  	    expand_macros(Toks1++Toks, St);
  	{ok,{As,Exp}} ->
  	    check_uses([{M,length(As)}], [], U, Lm),
  	    {Bs,Toks1} = bind_args(Toks, Lm, M, As, #{}),
  	    expand_macros(expand_macro(Exp, Tinfo, Toks1, Bs), St)
      end.
  
  expand_macro1(Lm, M, Toks, Ms) ->
  
negative.code: 
  %% scan_define(Tokens, DefineToken, From, EppState)
  
  scan_define([{'(',_Ap},{Type,_Am,_}=Mac|Toks], Def, From, St)
    when Type =:= atom; Type =:= var ->
      scan_define_1(Toks, Mac, Def, From, St);
  scan_define(_Toks, Def, From, St) ->
  