anchor.diff:                         (t (error "Bad source specifier ~s." source-specifier))))
                      (uiop:ensure-list specifiers))))
       (setf (sources prompter) (ensure-sources (sources prompter))))
  -  (setf (selection prompter) (list (first (sources prompter)) 0))
  +  (select-first prompter)
     (maybe-funcall (constructor prompter) prompter)
     (update-sources prompter (input prompter))
     prompter)
  
positive.code:     (unless (string= old-input text)
        (setf (slot-value prompter 'input) text)
        (update-sources prompter text)
        ;; TODO: Update `selection' when `update' is done.
        (setf (selection prompter) (list (first (sources prompter)) 0))))
    text)
  
  (export-always 'destroy)
  
negative.code:                  nil)
                  (t
                   (push next-source (ready-sources sync-queue))
                   ;; Update selection when update is done:
                   (select-first prompter)
                   next-source))))
          ;; No sync-queue if no input was ever set.
          t)))
  