                      ;; to all known sources.
                      melpa-style-recipe nil cause)
                     (progn
-                      ;; We don't want package.el unless this branch
-                      ;; is triggered. Since we're loading it
-                      ;; dynamically, we need to do `eval-and-compile'
-                      ;; to silence the byte-compiler.
-                      (eval-and-compile
-                        (require 'package))
-                      (if (package-built-in-p melpa-style-recipe)
+                      ;; Check if the package is considered as
+                      ;; "built-in". If so, it's not an issue if we
+                      ;; can't find it in any recipe repositories.
+                      (require 'finder-inf)
+                      (if (assq melpa-style-recipe package--builtins)
                           (cl-return-from straight--convert-recipe)
                         (error (concat "Could not find package %S "
                                        "in recipe repositories: %S")


;;;;; Recipe conversion

(cl-defun straight--convert-recipe (melpa-style-recipe &optional cause)
  "Convert a MELPA-STYLE-RECIPE to a normalized straight.el recipe.
Recipe repositories specified in `straight-recipe-repositories'

evalled to set symbol's value.  In the special case you only want
to bind a single value, BINDINGS can just be a plain tuple."
      (declare (indent 1) (debug if-let))
      (list 'if-let bindings (macroexp-progn body)))))

;; Definitions needed both at compile time and at runtime.
(eval-and-compile
