anchor.diff:  (defmacro in-debugger-p ()
     `(cl:assert (boundp '*suspended-rule*) nil
        "The debugger must be running to use this function."))
  +
  +#+LispWorks
  +(defmacro with-debugger-streams (&body body)
  +  `(let ((*standard-input* *standard-input*)
  +         (*standard-output* *standard-output*)
  +         (*terminal-io* *terminal-io*))
  +     (progn ,@body)))
  +
  +#-LispWorks
  +(defmacro with-debugger-streams (&body body)
  +  `(let ((*terminal-io* *terminal-io*)
  +         (*standard-input* *terminal-io*)
  +         (*standard-output* *terminal-io*))
  +     (progn ,@body)))
   
   (defun leave-debugger ()
     (setf *stepping* nil))
  
positive.code: ;;; File: debugger.lisp
  ;;; Description: The LISA debugger.
  
  ;;; $Id: lisa-debugger.lisp,v 1.9 2003/05/20 19:19:32 youngde Exp $
  
  (in-package "LISA")
  
  
negative.code:                (binding-slot-name binding)))))
    (values))
  
  (defun debugger-repl ()
    (with-debugger-streams
     (do ((*read-eval-print* t)
          (count 0 (incf count)))
         ((not *read-eval-print*) count)
       (handler-case
           (progn
             (format t "LISA-DEBUG[~D]: " count)
             (force-output)
             (print (eval (read-from-string (read-line))))
             (terpri))
         (error (e)
                (cerror "Remain in the LISA debugger." e)
                (unless (yes-or-no-p "Remain in the debugger? ")
                  (leave-debugger)
                  (setf *read-eval-print* nil)))))))
  
  (defmethod fire-rule :around ((self rule) tokens)
    (when (or *stepping*
  