anchor.diff:  %%        [[[binary,P,Brest]],Rest],                %Matches pattern
   %%        [[[binary,Brest]],End]]]],                %No match
   %%       [H,Gen]],St3};
  +
  +%% mapfoldl2(Fun, Acc1, Acc2, List) -> {List,Acc1,Acc2}.
  +%%  Like normal mapfoldl but with 2 accumulators.
  +
  +mapfoldl2(Fun, A0, B0, [E0|Es0]) ->
  +    {E1,A1,B1} = Fun(E0, A0, B0),
  +    {Es1,A2,B2} = mapfoldl2(Fun, A1, B1, Es0),
  +    {[E1|Es1],A2,B2};
  +mapfoldl2(_, A, B, []) -> {[],A,B}.
  
positive.code: %%         {Fs1,Fbs1,Env1,St2} = pass_ewc(Fs0, Fbs0, Env0, St1),
  %%         {[F|Fs1],Fbs1,Env1,St2}
  %%     end;
  pass_ewc([['define-function',Name,Def]=F|Fs0], Fbs0, Env0, St0) ->
      case func_arity(Def) of
          {yes,Ar} ->                             %Definition not too bad
              Fb = {Name,Ar,Def},
              %% Env1 = lfe_eval:add_expr_func(Name, Ar, Def, Env0),
              pass_ewc(Fs0, [Fb|Fbs0], Env0, St0);
          no ->                                   %Definition really bad
              %% Ignore it and pass it on to generate error later.
              {Fs1,Fbs1,Env1,St1} = pass_ewc(Fs0, Fbs0, Env0, St0),
              {[F|Fs1],Fbs1,Env1,St1}
      end;
  pass_ewc([F|Fs0], Fbs0, Env0, St0) ->
      %% First expand enough to test top form, if so process again.
  
negative.code:     do_forms(Fs, Env, St).
  
  do_forms(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}
  