anchor.diff:      do_forms(Fs, Env, St).
   
   do_forms(Fs0, Env0, St0) ->
  -    {Fs1,Env1,St1} = pass(Fs0, Env0, St0),
  +    {Fs1,Env1,St1} = pass_fileforms(Fs0, Env0, St0),
       case St1#mac.errors of
           [] -> {ok,Fs1,Env1,St1#mac.warnings};    %No errors
           Es -> {error,Es,St1#mac.warnings}
  
positive.code: %%        [[[binary,P,Brest]],Rest],                %Matches pattern
  %%        [[[binary,Brest]],End]]]],                %No match
  %%       [H,Gen]],St3};
  
negative.code:     Mdefs = map(fun ([Name|Rules]) -> exp_rules(Name, [], Rules) end, Defs),
      {yes,['let-macro',Mdefs|Body],St};
  exp_predef([prog1|Body], _, St0) ->
      %% We do a simple optimisation here.
      case Body of                                %Catch bad form here
          [Expr] -> {yes,Expr,St0};
          [First|Rest] ->
              {V,St1} = new_symb(St0),
              {yes,['let',[[V,First]]|Rest ++ [V]],St1}
      end;
  exp_predef([prog2|Body], _, St) ->
      [First|Rest] = Body,                        %Catch bad form here
      {yes,[progn,First,[prog1|Rest]],St};
  %% This has to go here for the time being so as to be able to macro
  %% expand body.
  exp_predef(['match-spec'|Body], Env, St0) ->
  