 ;;;###autoload
 (defun +workspace-list ()
   "Return a list of workspace structs (satisifes `+workspace-p')."
+  ;; We don't use `hash-table-values' because it doesn't ensure order in older
+  ;; versions of Emacs
   (cdr (cl-loop for persp being the hash-values of *persp-hash*
                 collect persp)))
 

  (let ((persp (or persp (+workspace-current))))
    (unless (+workspace-p persp)
      (user-error "Not in a valid workspace (%s)" persp))
    (cl-loop for buf in (buffer-list)
             if (+workspace-contains-buffer-p buf persp)
             collect buf)))

;;;###autoload
(defun +workspace-orphaned-buffer-list ()

                          (+workspace-new project-name))))
                   (new-name (persp-name persp)))
              (+workspace-switch new-name)
              (with-current-buffer (doom-fallback-buffer)
                (setq default-directory +workspaces--project-dir))
              (unless current-prefix-arg
