anchor.diff:                         (error (cdt)
                                 (setq error-p t)
                                 (setq val cdt))))))
  +                (inferior-lisp-set-point)
                   (set-buffer tmpbuf nil)))
                (mi-thread-closure
                 ()
  
positive.code:                            (point-set *inferior-lisp-last-point*)
                             (let ((*kill-disable-p* t))
                               (kill-sexp))))
       (setq *inferior-lisp-last-point* (point))
       (let ((str (pop ,log1)))
         (push str ,log2)
         (insert-string str))))
  
  (define-key *inferior-lisp-mode-keymap* (kbd "M-p") 'inferior-lisp-prev)
  (define-command inferior-lisp-prev () ()
  
negative.code: (define-key *inferior-lisp-mode-keymap* (kbd "C-m") 'inferior-lisp-eval)
  (define-command inferior-lisp-eval () ()
    (let ((point (point)))
      (end-of-buffer)
      (let ((str (region-string (or *inferior-lisp-last-point* (make-point 1 0))
                                (region-end))))
        (unless (string= "" (string-trim '(#\newline #\tab #\space) str))
          (insert-newline 1)
          (multiple-value-bind (value error-p)
              (safe-eval-from-string str)
            (when str
              (push str *inferior-lisp-log*))
            (unless error-p
              (unless (bolp)
                (insert-newline))
              (insert-string (write-to-string value))))
          (end-of-buffer)
          (insert-newline 1)
          (insert-string *inferior-lisp-prompt*)
          (inferior-lisp-set-point)))))
  
  (defmacro inferior-lisp-back-log (log1 log2)
    `(progn
  