anchor.diff:          form)
          (otherwise
           (if (macro-function (first form) env)
  -            ;; For a macro, we let the host CL expand it:
  -            (simple-step form)
  +            ;; For a macro, we expand it, and step the expansion;
  +            ;; most probably the expansion will contain CL operator,
  +            ;; they're mapped above.
  +            (step-expression (macroexpand form env) env)
               ;; For a function, we step the arguments:
               (step-function-call form env)))))))
   
  -
  -
   ;;;; THE END ;;;;
  
positive.code:      (case (first form)
  
         ;; First we check the real CL special operators:
         ;; We just step them wholesale. (If there are macros inside
         ;; they'll be expanded and we may step them.
         ((function quote)
          (step-simple-form form))
         ((block catch eval-when flet go if labels let let*
                 load-time-value locally macrolet multiple-value-call
                 multiple-value-prog1 progn progv return-from setq
                 symbol-macrolet tagbody the throw unwind-protect)
          (simple-step form))
  
         ;; Next we check for the stepper macros.  Since they already
         ;; expand to simple-step, we just use them as is, unless
         ;; they're toplevelness protected forms:
  
negative.code: ;;;;AUTHORS
  ;;;;    <PJB> Pascal J. Bourguignon <pjb@informatimago.com>
  ;;;;MODIFICATIONS
  ;;;;    2021-11-05 <PJB> Added stepping macroexpansions.
  ;;;;    2014-10-08 <PJB> Corrected step-{break,unbreak}-{entry,exit}.
  ;;;;    2012-08-09 <PJB> Extracted from stepper.lisp
  ;;;;BUGS
  ;;;;LEGAL
  ;;;;    AGPL3
  ;;;;
  ;;;;    Copyright Pascal J. Bourguignon 2012 - 2021
  ;;;;
  ;;;;    This program is free software: you can redistribute it and/or modify
  ;;;;    it under the terms of the GNU Affero General Public License as published by
  