                      nil nil 'interactive))
   ;; If `straight--convert-recipe' returns nil, the package is
   ;; built-in. No need to go any further.
-  (when-let ((recipe (straight--convert-recipe melpa-style-recipe cause)))
+  (when-let ((recipe (straight--convert-recipe
+                      (or
+                       (straight--get-overridden-recipe
+                        (if (listp melpa-style-recipe)
+                            (car melpa-style-recipe)
+                          melpa-style-recipe))
+                       melpa-style-recipe)
+                      cause)))
     (straight--with-plist recipe
         (package no-build)
       (let (;; Check if the package has been successfully built. If

            (puthash package t straight--success-cache)
            t))))))

;;;;; Rebuilding packages

;;;###autoload

precedence. Functions named like `straight--recipes-NAME-list',
etc. should be defined, where NAME is any element of this list."
  :type '(list symbol)
  :group 'straight)

(defcustom straight-recipe-overrides ()
  "Alist specifying recipes to override those provided explicitly.
The keys are symbols naming profiles, and the values are lists of
MELPA-style package recipes. Because the car of a MELPA-style
recipe is the package name as a symbol, this is actually an alist
whose keys are symbols naming packages."
  :type '(alist :key-type symbol :value-type
           (alist :key-type symbol :value-type
             (plist :key-type symbol :value-type sexp)))
  :group 'straight)

;;;; Utility functions
