anchor.diff:              (,%form
                (eval (function-lambda-expression
                       ;; FIXME: ^ THIS might not always "work out"
  -                    (macro-function ,%name ,%env)))))
  +                    (or (macro-function ,%name ,%env)
  +                        (error "No macro function defined for ~S"
  +                               ,%name))))))
   
          (register-advise ,%name ,%env ,%form)
              
  
positive.code: 
  (define-condition already-advised (program-error advise-condition)
    ()
    (:repor
     (lambda (c s)
       (format s "Already advised: ~s" (advise-condition-name c)))))
  
  (define-condition not-advised (program-error advise-condition)
    ()
    (:repor
     (lambda (c s)
       (format s "Not advised: ~s" (advise-condition-name c)))))
  
  
  (defconstant %advise-expand% 8)
  
  (defvar %advise-rec%
    (make-array %advise-expand%
                :element-type 'advise-record
                :adjustable t
                :fill-pointer 0))
  
  (defun get-advise (name env &optional (errorp t))
  
negative.code:   :after  (lambda (%argtoo)
              (frob-trace "GOT ARGTOO AFTER ~s" %argtoo))
    )
  ))
  
  #+test (quux 12)
  ;; ^FIXME: *trace-output* shows order of eval: :BEFORE, :AFTER, :DURING
  