anchor.diff:                           existing-test-function
                            history-name
                            &optional syntax-table)
  -  (declare (ignore syntax-table))
     (when (lem::frame-prompt-window (current-frame))
       (editor-error "recursive use of prompt window"))
     (let* ((called-window (current-window))
            (prompt-window (show-prompt prompt-string
                                        initial-string
  -                                     (make-instance 'prompt-window-parameters
  +                                     (make-instance 'prompt-parameters
                                                       :completion-function completion-function
                                                       :existing-test-function existing-test-function
                                                       :called-window called-window
  
positive.code:     :initarg :history
      :reader prompt-window-history)))
  
  (defclass prompt-window (floating-window prompt-window-parameters)
    ((start-point
      :accessor prompt-window-start-charpos))
    (:default-initargs
  
negative.code:     (handler-case
          (with-unwind-setf (((lem::frame-prompt-window (current-frame))
                              prompt-window))
              (with-current-syntax syntax-table
                (lem::command-loop))
            (delete-prompt prompt-window))
        (abort-prompt ()
          (error 'editor-abort))
  