anchor.diff:      end;
   func_arity(_) -> no.
   
  -%% pass_expand_expr(Expr, Line, Env, State, ExpandFlag) ->
  +%% pass_expand_expr(Expr, Env, State, ExpandFlag) ->
   %%     {yes,Exp,State} | {no,State}.
   %% Try to macro expand Expr, catch errors and return them in State.
   %% Only try to expand list expressions.
   
  -pass_expand_expr([_|_]=E0, L, Env, St0, Expand) ->
  +pass_expand_expr([_|_]=E0, Env, St0, Expand) ->
       try
   	case exp_macro(E0, Env, St0) of
   	    {yes,_,_}=Yes -> Yes;
  
positive.code:     end;
  pass([], Env, St) -> {[],Env,St}.
  
  %% pass_progn(Forms, Line, Env, State) -> {Forms,Env,State}.
  %%  Pass over a list of forms collecting and removing all macro
  %%  defintions. All forms must be expanded at top-level to check form,
  %%  but all can be expanded to full depth. Nesting of forms by progn
  %%  is preserved.
  
  pass_progn([['progn'|Pfs0]|Fs0], L, Env0, St0) ->
      {Pfs1,Env1,St1} = pass_progn(Pfs0, L, Env0, St0),
      {Fs1,Env2,St2} = pass_progn(Fs0, L, Env1, St1),
      {[['progn'|Pfs1]|Fs1],Env2,St2};
  pass_progn([['eval-when-compile'|Ewcs0]|Fs0], L, Env0, St0) ->
      {Ecws1,Env1,St1} = pass_ewc(Ewcs0, L, Env0, St0),
      {Fs1,Env2,St2} = pass_progn(Fs0, L, Env1, St1),
      {[['progn'|Ecws1]|Fs1],Env2,St2};
  pass_progn([['define-macro'|Def]=F|Fs0], L, Env0, St0) ->
      case pass_define_macro(Def, L, Env0, St0) of
  	{yes,Env1,St1} -> pass_progn(Fs0, L, Env1, St1);
  	{no,St1} ->
  	    %% Ignore it and pass it on to generate error later.
  	    {Fs1,Env1,St2} = pass_progn(Fs0, L, Env0, St1),
  	    {[F|Fs1],Env1,St2}
      end;
  pass_progn([F|Fs0], L, Env0, St0) ->
      %% First expand enough to test top form, if so process again.
      case pass_expand_expr(F, L, Env0, St0, St0#mac.expand) of
  	{yes,Exp,St1} ->			%Top form expanded
  	    pass_progn([Exp|Fs0], L, Env0, St1);
  	{no,F1,St1} -> 				%Expanded all if flag set
  	    {Fs1,Env1,St2} = pass_progn(Fs0, L, Env0, St1),
  	    {[F1|Fs1],Env1,St2}
      end;
  pass_progn([], _, Env, St) -> {[],Env,St}.
  
  %% pass_ewc(Forms, Line, Env, State) -> {Forms,Env,State}.
  %%  Pass over a list of forms collecting and removing all function
  %%  defintions. All forms must be expanded at top-level to check
  %%  form. Nesting of forms by progn is preserved. All functions are
  
negative.code:     end;
  pass([{F,L}|Fs0], Env0, St0) ->
      %% First expand enough to test top form, else maybe expand all.
      case pass_expand_expr(F, Env0, St0#mac{line=L}, St0#mac.expand) of
  	{yes,Exp,St1} ->			%Top form expanded
  	    pass([{Exp,L}|Fs0], Env0, St1);
  	{no,F1,St1} -> 				%Expanded all if flag set
  