     youtube-dl
     (ztree ztree-diff)))
 
-(defun +evil-collection-init (module)
+(defun +evil-collection-init (module &optional disabled-list)
   "Initialize evil-collection-MODULE.
 
 Unlike `evil-collection-init', this respects `+evil-collection-disabled-list',
 and complains if a module is loaded too early (during startup)."
-  (unless (memq (or (car-safe module) module) +evil-collection-disabled-list)
-    (let ((module-sym (or (car-safe module) module)))
-      (doom-log "Initialized evil-collection-%s %s"
-                module-sym (if doom-init-time "" "(too early!)")))
+  (unless (memq (or (car-safe module) module) disabled-list)
+    (doom-log "Initialized evil-collection-%s %s"
+              (or (car-safe module) module)
+              (if doom-init-time "" "(too early!)"))
     (with-demoted-errors "evil-collection error: %s"
       (evil-collection-init (list module)))))
 

;; 2. This ensures a predictable load order, versus lazy loading using :defer or
;;    :after-call. This means users can use (after! org ...) and be sure that
;;    their changes will override evil-collection's.
;; 3. Eventually, I'd like to remove evil-collection. It changes too often,
;;    introduces breaking bugs too frequently, and I don't always agree with
;;    their design choices. Regardless, there are useful tidbits I'd like to
;;    keep. This will be a slow transition, but this file is where most of it
;;    will happen.
;; 4. Adds `+evil-collection-disabled-list', to make it easier for users to
;;    disable modules, and to reduce the effort required to maintain our copy of
;;    `evil-collection-list' (now I can just copy it from time to time).

(defvar evil-collection-want-unimpaired-p nil)

;; This has to be defined here since evil-collection doesn't autoload its own.
;; It must be updated whenever evil-collection updates theirs. Here's an easy
;; way to update it:
;;
;; (with-current-buffer
;;     (url-retrieve-synchronously "https://raw.githubusercontent.com/emacs-evil/evil-collection/master/evil-collection.el" t t)
;;   (goto-char (point-min))
;;   (when (re-search-forward "^(defcustom evil-collection-mode-list\n[^(]+")
;;     (kill-new (thing-at-point 'sexp t))))
(defvar evil-collection-mode-list
  `(2048-game
    ag
