anchor.diff:  -import(orddict, [find/2,store/3]).
   -import(ordsets, [add_element/2,is_element/2]).
   
  --define(Q(E), [quote,E]).			%We do a lot of quoting!
  +%% We do a lot of quoting!
  +-define(Q(E), [quote,E]).
   -define(BQ(E), [backquote,E]).
   -define(UQ(E), [unquote,E]).
   -define(UQ_S(E), ['unquote-splicing',E]).
   
  +%% Macro expander state.
   -record(mac, {expand=true,			%Expand everything
  +	      line=1,				%Line no of current form
   	      vc=0,				%Variable counter
   	      fc=0,				%Function counter
   	      errors=[],			%Errors
  
positive.code:     {Ef,_} = expand(F, Env, #mac{expand=true}),
      Ef.
  
  %% expand_forms(FileForms, Env) -> {FileForms,Env}.
  %%  Expand forms in "file format", {Form,LineNumber}.
  
  expand_forms(Fs, Env) ->
      do_forms(Fs, Env, true).
  
  %% macro_forms(FileForms, Env) -> {FileForms,Env}.
  %%  Collect, and remove, all macro definitions in a list of forms. All
  %%  top level macro calls are also expanded and any new macro
  %%  definitions are collected.
  
negative.code: expand_expr_1(_, _) -> no.
  
  expand_expr([Name|_]=Call, Env) when is_atom(Name) ->
      St0 = #mac{expand=false,line=1},		%Default state
      case exp_macro(Call, Env, St0) of
  	{yes,Exp0,St1} ->
  	    {Exp1,_} = expand_expr_loop(Exp0, Env, St1),
  