anchor.diff:  
   exp_rules(Name, Keywords, Rules) ->
       [Name,[lambda,[args,'$ENV'],
  -       [':',lfe_macro,mbe_syntax_rules_proc,
  -        [quote,Name],[quote,Keywords],[quote,Rules],args]]].
  +           [':',lfe_macro,mbe_syntax_rules_proc,
  +            [quote,Name],[quote,Keywords],[quote,Rules],args]]].
   
   %%  By Andr� van Tonder
   %%  Unoptimized.  See Dybvig source for optimized version.
  
positive.code: 
  exp_syntax(Name, Def) ->
      case Def of
      [macro|Cls] ->
          Mcls = map(fun ([Pat|Body]) -> [[Pat,'$ENV']|Body] end, Cls),
          [Name,['match-lambda'|Mcls]];
      ['syntax-rules'|Rules] ->
          exp_rules(Name, [], Rules)
      end.
  
  %% exp_rules(Name, Keywords, Rules) -> Lambda.
  
negative.code: 
  exp_defmacro(Name, [Args|Rest]=Def) ->
      Mcls = case is_symb_list(Args) of
                 true -> exp_lambda_defmacro([list|Args], Rest);
                 false ->
                     if is_atom(Args) ->
                             exp_lambda_defmacro(Args, Rest);
                        true ->
                             exp_match_defmacro(Def)
                     end
             end,
      [Name,['match-lambda'|Mcls]].
  
  exp_lambda_defmacro(Args, Body) ->
      %% Test whether first expression is a comment string.
      [[[Args,'$ENV']|exp_lambda_body(Body)]].
  
  exp_match_defmacro(Cls) ->
      map(fun ([Head|Body]) -> [[Head,'$ENV']|Body] end,
          exp_match_clauses(Cls)).
  
  %% exp_syntax(Name, Def) -> Lambda | MatchLambda.
  %%  N.B. New macro definition is function of 2 arguments, the whole
  