anchor.diff:                                (region-end))))
         (unless (string= "" (string-trim '(#\newline #\tab #\space) str))
           (insert-newline 1)
  -        (multiple-value-bind (value error-p)
  +        (multiple-value-bind (values 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))))
  +            (dolist (v values)
  +              (insert-string (write-to-string v))
  +              (insert-newline 1))))
           (inferior-lisp-prompt)))))
   
   (defmacro inferior-lisp-back-log (log1 log2)
  
positive.code:                          (*standard-input* in))
                       (handler-case
                           (handler-bind ((error #'lisp-error-clause))
                             (setq val (eval-from-string str)))
                         (error (cdt)
                                (setq error-p t)
                                (setq val cdt))))))
                  (inferior-lisp-set-point)
                  (set-buffer tmpbuf nil)))
               (mi-thread-closure
  
negative.code:       (setq *mi-thread* (bt:make-thread #'mi-thread-closure))
        (bt:join-thread *eval-thread*)
        (bt:destroy-thread *mi-thread*))
      (values values error-p)))
  
  (defun safe-eval-from-string (x)
    (handler-case (safe-eval-from-string-1 x)
  