 ;; old Emacs that was opened before you made the change. You can then
 ;; just press M-RET r to get the change into that instance.
 
-(defun radian-reload-init ()
-  "Reload init.el."
-  (interactive)
+(defun radian-reload-init (&optional upgrade)
+  "Reload init.el. With prefix argument, upgrades packages."
+  (interactive "P")
   (message "Reloading init.el...")
+  (setq radian--inhibit-loading-quelpa (not upgrade))
   (radian-load-user-config "init.el")
   (message "Reloading init.el... done."))
 

;; modified so that it does not require `cl' (currently, Radian only
;; loads `cl-lib').
;;
;; This problem should not happen when packages are installed via
;; Quelpa, but just in case the user puts a plain `use-package' form
;; in their init.local.el, we have to fix this error.
;;
;; [1]: https://github.com/jwiegley/use-package/issues/256

(defun radian--package-install-refresh-contents (&rest args)

  :config

  ;; Tell quelpa not to update MELPA every time Emacs is started.
  (setq quelpa-update-melpa-p nil)

  ;; Automatically upgrade packages. This does not actually take
  ;; effect if the call to quelpa comes from a `:quelpa' keyword in a
  ;; `use-package' form and
  ;; `quelpa-use-package-inhibit-loading-quelpa' is non-nil (as it is
  ;; by default in Radian). It only affects what happens when
  ;; `radian-reload-init' is called with a prefix argument; in that
  ;; case it allows packages to be upgraded, as desired.
  (setq quelpa-upgrade-p t))

;; Add a :quelpa keyword to `use-package', which allows installing
;; packages with quelpa. We have a bit of a chicken and egg problem
