anchor.diff:                               (princ str out))
                            nil)))))
   
  -
   #+sbcl
   (progn
     (defparameter *lisp-definition-types*
  
positive.code:         (cond ((eq str 'abort))
                ((and i (<= 1 i n))
                 (let ((restart (nth (1- i) choices)))
                   (cond ((eq 'store-value (restart-name restart))
                          (ldebug-store-value condition))
                         (t (invoke-restart-interactively restart))))
                 (return))
                (t
                 (let ((x
                        (handler-case (eval (read-from-string str nil))
                          (error (cdt)
                                 (format nil "~a" cdt)))))
                   (info-popup (get-buffer-create "*output*")
                               #'(lambda (out)
                                   (princ x out))
                               nil)))))))
    condition)
  
  (defun eval-string-internal (string output-buffer point
  
negative.code:       (store-value x condition)
        (return))))
  
  (defvar *interrupting-thread*)
  (defvar *interrupting-thread-function*)
  
  (defun lambda-interrupting-thread (main-thread)
    (lambda ()
      (ignore-errors
       (loop :for c := (charms/ll:getch) :do
         (cond ((= c -1))
               ((eql c (char-code C-c))
                (bt:interrupt-thread
                 main-thread
                 #'(lambda ()
                     (error "interrupt"))))
               (t
                (ungetch (code-char c))))))))
  
  (defun make-interrupting-thread ()
    (setq *getch-wait-p* t)
    (setq *interrupting-thread*
          (bt:make-thread *interrupting-thread-function*)))
  
  (defun delete-interrupting-thread ()
    (setq *getch-wait-p* nil)
    (bt:interrupt-thread *interrupting-thread*
                         #'(lambda () (error "error"))))
  
  (defun lisp-debugger (condition)
    (delete-interrupting-thread)
    (let* ((choices (compute-restarts condition))
           (n (length choices)))
      (lisp-info-popup (get-buffer-create "*error*")
  