anchor.diff:    (with-slots (condition-itself restarts channel)
         (gethash id *debug-conditions*)
       (declare (ignore channel))
  -    (debug->html condition-itself id restarts buffer t)))
  +    (debug->html condition-itself id restarts)))
   
   (define-command-global toggle-debug-on-error (&key (value nil value-provided-p))
     "Toggle Nyxt-native debugging.
  
positive.code:              (make-two-way-stream
                ;; TODO: Understand how Swank makes those streams.
                (swank-backend:make-input-stream
                 (lambda () (prompt :prompt (prompt-text handler)
                                    :sources (list (make-instance 'prompter:raw-source)))))
                (swank-backend:make-output-stream (lambda (string) (setf (prompt-text handler) string))))))
        (setf (gethash id *debug-conditions*) handler)
        (open-debugger :id id)
        ;; FIXME: Waits indefinitely. Should it?
        (invoke-restart-interactively (calispel:? channel)))))
  
  (defun debug->html (condition id &optional restarts buffer delete-buffer-p)
    "Produce HTML code for the CONDITION with RESTARTS."
    (spinneret:with-html-string
      (:h* (symbol-name (type-of condition)))
  
negative.code:                                                 (let ((condition (gethash ,id *debug-conditions*)))
                                                    (calispel:! (channel condition)
                                                                (nth ,i (restarts condition)))
                                                    (remhash ,id *debug-conditions*)))))
                              (format nil "[~d] ~a" i (restart-name restart))))
       (:h* "Backtrace")
       ;; TODO: SLIME and SLY provide introspectable backtraces. How?
  