anchor.diff:    "Store the exact list of enabled modes to auto-mode rules for all the future visits of this
   domain/host/URL/group of websites inferring the suitable matching condition by user input.
   Uses `url-infer-match', see its documentation for matching rules.
  +
  +This command does not save non-rememberable modes. If you want to auto-mode to
  +save a particular mode, configure it to be `rememberable-p' in your initfile.
   
   For the storage format see the comment in the head of your `auto-mode-rules-data-path' file."
     ;; TODO: Should it prompt for modes to save?
  
positive.code: to one of auto-mode rules. Apply the resulting rule for all the future visits to this URL,
  inferring the matching condition with `url-infer-match'.
  
  For the storage format see the comment in the head of your `auto-mode-rules-data-path' file."
    (let ((url (first (prompt
                       :prompt "URL:"
  
negative.code:   (:method ((mode mode-invocation))
      mode)
    (:method ((mode nyxt:root-mode))
      (when (rememberable-p mode)
        (make-instance 'mode-invocation :name (mode-name mode))))
    (:method ((mode symbol))
      (or (sera:and-let* ((command (nyxt::mode-command mode))
                          (rememberable-p (rememberable-p (make-instance (nyxt:name command)))))
            (make-instance 'mode-invocation :name (nyxt:name command)))
          (echo-warning "Auto-mode rule: unknown mode symbol ~s" mode)))
    (:method ((mode list))
      (check-type mode (cons symbol *))
      (when (rememberable-p (make-instance (first mode)))
        (make-instance 'mode-invocation
                       :name (first mode)
                       :arguments (rest mode)))))
  
  (defun mode-invocations (mode-list)
    "Return the mode invocations corresponding to mode specifiers in MODE-LIST.
  