anchor.diff:                                  (rl:readline :already-prompted t))))
               ((and (zerop count) (symbolp x) (not (null x)))
                (add-history line)
  -             (cond ((fboundp x)
  +             (cond ((command-p x)
  +                    (let ((args
  +                           (read-args-from-string
  +                            (subseq line pos))))
  +                      (return (call-command x args))))
  +                   ((fboundp x)
                       (let ((expr
  -                           (with-input-from-string (in (subseq line pos))
  -                             `(,x ,@(loop :for x := (read in nil '#1=#:eof)
  -                                      :until (eq x '#1#)
  -                                      :collect x)))))
  +                           `(,x ,@(read-args-from-string
  +                                   (subseq line pos)))))
                         (return expr)))
                      (t
                       (return x))))
  
positive.code: 
  (in-package :repl)
  
  (defun command (cmd arg-string)
    (multiple-value-bind (stdout-string stderr-string $?)
        (trivial-shell:shell-command
         (format nil "~(~a~) ~a" cmd arg-string))
      (princ stdout-string)
      (princ stderr-string)
      $?))
  
  (defun common-prefix (items)
    (subseq (car items)
  
negative.code: (defun add-history-expr (x)
    (add-history (prin1-to-string x)))
  
  (defun read-args-from-string (str)
    (with-input-from-string (in str)
      (loop :for x := (read in nil '#1=#:eof)
        :until (eq x '#1#)
        :collect x)))
  
  (defun readline-read (prompt)
    (let ((line (rl:readline :prompt prompt)))
      (loop
  