anchor.diff:        `(,(read-from-string "swank-repl::listener-get-value"))
         (lambda (result)
           (declare (ignore result))
  -        (lem.listener-mode:listener-reset-prompt (repl-buffer)))))))
  +        (lem.listener-mode:listener-reset-prompt (ensure-repl-buffer-exist)))))))
   
   (defun write-string-to-repl (string)
  -  (let ((buffer (repl-buffer)))
  -    (unless buffer
  -      (start-lisp-repl)
  -      (setf buffer (repl-buffer)))
  +  (let ((buffer (ensure-repl-buffer-exist)))
       (with-point ((start (buffer-end-point buffer) :left-inserting))
         (when (text-property-at start :field -1)
           (insert-character start #\newline))
  
positive.code:         'repl-read-line))
  
  (defun clear-repl ()
    (lem.listener-mode:clear-listener (repl-buffer)))
  
  (defun get-repl-window ()
    (let* ((buffer (repl-buffer)))
      (if (eq buffer (window-buffer (current-window)))
          (current-window)
          (first (get-buffer-windows buffer)))))
  
  (defun repl-buffer-width ()
    (alexandria:when-let* ((window (get-repl-window))
  
negative.code:    (repl-buffer-width)))
  
  (defun repl-read-string (thread tag)
    (let ((buffer (ensure-repl-buffer-exist)))
      (push thread (read-string-thread-stack))
      (push tag (read-string-tag-stack))
      (setf (current-window) (pop-to-buffer buffer))
  