anchor.diff:        (princ buffer output)))
     (values))
   
  +(defmethod show-buffer ((terminal swank-terminal))
  +  "Replace the last line ('unflushed') in the slime buffer with the
  +contents of the BUFFER, moving the cursor too the CURRENT-COLUMN."
  +  (with-slots (current-column buffer) terminal
  +    (eval-in-emacs `(with-current-buffer (slime-repl-buffer)
  +                      (delete-region
  +                       (progn (slime-repl-bol) (point))
  +                       (progn (end-of-line)    (point)))
  +                      (insert ,buffer)
  +                      (slime-repl-bol)
  +                      (forward-char ,current-column)
  +                      (slime-move-point (point))))))
  +
   
   (defmethod terminal-new-line ((terminal swank-terminal) &optional (count 1))
     (flush terminal)
  
positive.code: (defmethod terminal-line-feed ((terminal swank-terminal) &optional (count 1))
    (flush terminal)
    (with-slots (current-column buffer) terminal
      (let ((output (terminal-output-stream terminal))
            (line (make-string current-column :initial-element #\space)))
        (loop :repeat count :do (terpri output) (princ line output))
        (terminal-finish-output terminal)
        (fill buffer #\space)))
    (values))
  
  
  ;; (let ((terminal (com.informatimago.lse::task-terminal *task*)))
  
negative.code:         (setf (fill-pointer buffer) (max (fill-pointer buffer) new-column))
          (replace buffer string :start1 current-column :start2 start :end2 end)
          (setf current-column new-column)
          (show-buffer terminal))))
    (values))
  
  
  (defmethod terminal-read-line ((terminal swank-terminal) &key (echo t) (beep nil) (xoff nil))
    ;; (terminal-new-line terminal 0)
    (flush terminal)
    (call-next-method))
  
  (defmethod terminal-read ((terminal swank-terminal) &key (echo t) (beep nil) (xoff nil))
    (terminal-new-line terminal 0)
    (call-next-method))
  
  
  