anchor.diff:                     (loop
                        for evaluation in (evaluations repl-mode)
                        for order from 0
  -                     collect (:div :class "input"
  -                                   (:span :class "prompt"
  -                                          (:button
  -                                           :onclick (ps:ps (nyxt/ps:lisp-eval
  -                                                            (:title "move-cell-up")
  -                                                            (move-cell-up :id order)))
  -                                           :title "Move this cell up."
  -                                           "↑")
  -                                          (:button
  -                                           :onclick (ps:ps (nyxt/ps:lisp-eval
  -                                                            (:title "move-cell-down")
  -                                                            (move-cell-down :id order)))
  -                                           :title "Move this cell down."
  -                                           "↓"))
  -                                   (:textarea :class "input-buffer" :data-repl-id order
  -                                              :onfocus
  -                                              (ps:ps (nyxt/ps:lisp-eval
  -                                                      (:title "set-current-evaluation")
  -                                                      (setf (slot-value (nyxt:current-mode :repl)
  -                                                                        'current-evaluation)
  -                                                            order)))
  -                                              (input evaluation)))
  -                     collect (if (ready-p evaluation)
  -                                 (loop
  -                                   for result in (results evaluation)
  -                                   for sub-order from 0
  -                                   for name = (if (serapeum:single (results evaluation))
  -                                                  (intern (format nil "V~d" order))
  -                                                  (intern (format nil "V~d.~d" order sub-order)))
  -                                   do (setf (symbol-value name) result)
  -                                   collect (:span (format nil "~(~a~) = " name)
  -                                                  (:raw (value->html result (or (typep result 'standard-object)
  -                                                                                (typep result 'structure-object)))))
  -                                   collect (:br))
  -                                 (:span "Calculating...")))
  +                     collect (:div
  +                              :class "evaluation"
  +                              :id (format nil "evaluation-~a" (id evaluation))
  +                              (:div :class "input"
  +                                    (:span :class "prompt"
  +                                           (:button
  +                                            :onclick (ps:ps (nyxt/ps:lisp-eval
  +                                                             (:title "move-cell-up")
  +                                                             (move-cell-up :id order)))
  +                                            :title "Move this cell up."
  +                                            "↑")
  +                                           (:button
  +                                            :onclick (ps:ps (nyxt/ps:lisp-eval
  +                                                             (:title "move-cell-down")
  +                                                             (move-cell-down :id order)))
  +                                            :title "Move this cell down."
  +                                            "↓"))
  +                                    (:textarea :class "input-buffer" :data-repl-id order
  +                                               :onfocus
  +                                               (ps:ps (nyxt/ps:lisp-eval
  +                                                       (:title "set-current-evaluation")
  +                                                       (setf (slot-value (nyxt:current-mode :repl)
  +                                                                         'current-evaluation)
  +                                                             order)))
  +                                               (input evaluation)))
  +                              (:div :class "evalution-result"
  +                                    :id (format nil "evaluation-result-~a" (id evaluation))
  +                                    (:raw (html-result evaluation)))))
                      (:div :class "input"
                            (:span :class "prompt" ">")
                            (:textarea :class "input-buffer"
  
positive.code:                                        completion (subseq input cursor))
                (cursor repl) (+ cursor (- (length completion) (- cursor previous-delimiter))))))))
  
  (define-internal-page-command-global lisp-repl ()
      (repl-buffer "*Lisp REPL*" 'repl-mode)
    "Show Lisp REPL."
  
negative.code: (in-package :nyxt/repl-mode)
  
  (define-class evaluation ()
    ((id
      (nyxt::new-id)
      :type alex:non-negative-integer
      :documentation "Unique evaluation identifier.")
     (input
      nil
      :type (maybe string)
      :documentation "User input.")
  