   (or (null file)
       (stringp file)
       (signal 'wrong-type-argument (list 'stringp file)))
-  (cond ((equal file doom-autoload-file)
+  (cond ((file-equal-p file doom-autoload-file)
          (doom-reload-doom-autoloads force-p))
-        ((equal file doom-package-autoload-file)
+        ((file-equal-p file doom-package-autoload-file)
          (doom-reload-package-autoloads force-p))
         ((progn
            (doom-reload-doom-autoloads force-p)

  (if command
      (princ (doom--dispatch-format desc))
    (print! (bold "%-10s\t%s\t%s" "Command:" "Alias" "Description"))
    (dolist (spec (sort doom--dispatch-command-alist
                        (lambda (x y) (string-lessp (car x) (car y)))))
      (cl-destructuring-bind (command &key desc _body) spec
        (let ((aliases (cl-loop for (alias . cmd) in doom--dispatch-alias-alist
                                if (eq cmd command)


BODY will be run when this dispatcher is called."
  (declare (doc-string 3))
  (cl-destructuring-bind (cmd &rest aliases) (doom-enlist command)
    (macroexp-progn
     (append
      (when aliases
        `((dolist (alias ',aliases)
            (map-put doom--dispatch-alias-alist alias ',cmd))))
      `((map-put doom--dispatch-command-alist ',cmd
                 (list :desc ,docstring
                       :body (lambda (args) ,form))))))))


;;
