anchor.diff:      `(let* ((,%name (quote ,name))
               (,%env ,env)
               (,%form
  -             (function-lambda-expression (macro-function ,%name ,%env))))
  +             (eval (function-lambda-expression
  +                    ;; FIXME: ^ THIS might not always "work out"
  +                    (macro-function ,%name ,%env)))))
   
          ;; FIXME: store ,%FORM on hash of (,%NAME ,%ENV)
  -       (setf (gethash ,%name  %advise%)
  -             ,%form)
  +       (register-advise ,%name ,%form)
              
          (defmacro ,name ,lambda
            ,@(when before
  
positive.code:                    `((funcall ,after  ,@lambda))))))))
  
  
  (defmacro unadvise (name &environment env)
    (declare (ignore env))
    (let ((%name (gensym "%name-"))
          (%adv (gensym "%adv-"))
          (%undef (gensym "%undef-"))
          )
      `(let* ((,%name (quote ,name))
              (,%undef (gensym "%_%undef"))
              (,%adv (gethash ,%name %advise% ,%undef)))
         (cond
           ((eq ,%adv ,%undef)
            (warn "~S not advised" ,%name))
           (t
            (remhash ,%name %advise%)
            (let ((,%adv (eval ,%adv)))
              (setf (macro-function ,%name) ,%adv)
              (compile ,%name ,%adv)))
           ))))
  
  #|
  
  
negative.code: #+test (quux 12)
  ;; ^FIXME: *trace-output* shows order of eval: :BEFORE, :AFTER, :DURING
  
  (unadvise-macro quux)
  
  #+test (quux 28)
  
  
  
  |#
  
  ;; Prototypes
  
  
  
  #+NIL
  (defmacro compute-defkind (name &environment env)
  