anchor.diff:       (t (query query)))))
   
   (defmethod prompter:object-attributes ((query new-url-query))
  -  `(("URL or new query" ,(query query))
  +  `(("URL or new query" ,(or (label query) (query query)))
       ("Search engine?" ,(if (engine query) (shortcut (engine query)) ""))))
  +
  +(defun make-completion-query (completion &key engine (check-dns-p t))
  +  (typecase completion
  +    (string (make-instance 'new-url-query
  +                           :engine      engine
  +                           :check-dns-p check-dns-p
  +                           :query completion))
  +    (list (make-instance 'new-url-query
  +                         :check-dns-p check-dns-p
  +                         :query (second completion)
  +                         :label (first completion)))))
   
   (defun input->queries (input &key (check-dns-p t)
                                  (engine-completion-p))
  
positive.code:                                 (engine (default-search-engine))
                                  (completion (completion-function engine))
                                  (all-terms (str:join " " terms)))
                    (mapcar (alex:curry #'make-instance 'new-url-query
                                        :engine engine :query)
                            (funcall (completion-function engine) all-terms)))))))
  
  (define-class new-url-or-search-source (prompter:source)
  
negative.code: (define-class new-url-query ()
    ((query ""
            :documentation "Either a URL or a string query passed to `engine'.")
     (label nil
            :type (or null string)
            :documentation "The meaningful text for the query, if query is a URL.")
     (engine nil
             :type (or null search-engine)))
    (:export-class-name-p t)
  