 required (see the Package-Requires header in a
 package.el-compliant Elisp package). The return value is a list
 of strings naming the packages that are mentioned in the
-dependency list, excluding built-in packages (as determined by
-package.el)."
-  ;; We don't want package.el unless dependencies need to be
-  ;; processed. Since we're loading it dynamically, we need to do
-  ;; `eval-and-compile' to silence the byte-compiler.
-  (eval-and-compile
-    (require 'package))
-  (let ((packages nil))
-    (dolist (spec dependencies)
-      (cl-destructuring-bind (package . version) spec
-        (unless (package-built-in-p package)
-          (push (symbol-name package) packages))))
-    packages))
+dependency list."
+  (mapcar #'symbol-name (mapcar #'car dependencies)))
 
 (defun straight--compute-dependencies (package)
   "Register the dependencies of PACKAGE in `straight--build-cache'.

          ;; Emacsmirror ostensibly contains all packages that are in
          ;; MELPA. But you never know. It's better to return a
          ;; non-Git recipe than to error out entirely.
          melpa-recipe
          ;; Oh no!
          (error (concat "Could not find package %S "
                         "in MELPA, GNU ELPA, or "
                         "Emacsmirror")
                 package)))))

(defun straight--convert-recipe (melpa-style-recipe &optional cause)
  "Convert a MELPA-STYLE-RECIPE to a normalized straight.el recipe.
MELPA, GNU ELPA, and Emacsmirror may be cloned and searched for
recipes if the MELPA-STYLE-RECIPE is just a package name;
otherwise, the MELPA-STYLE-RECIPE should be a list and it is
modified slightly to conform to the internal straight.el recipe
format. CAUSE is a string indicating the reason recipe
repositories might need to be cloned."
  ;; Firstly, if the recipe is only provided as a package name, and
  ;; we've already converted it before, then we should just return the
  ;; previous result. This has nothing to do with efficiency; it's

             (full-melpa-style-recipe
              (if recipe-specified-p
                  melpa-style-recipe
                (or (straight--lookup-recipe
                     ;; Second argument is the sources list, defaults
                     ;; 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)
                          (cl-return-from straight--convert-recipe)
                        (error (concat "Could not find package %S "
                                       "in MELPA, GNU ELPA, or "
                                       "Emacsmirror")
                               melpa-style-recipe)))))))
        ;; MELPA-style recipe format is a list whose car is the
        ;; package name as a symbol, and whose cdr is a plist.
        (cl-destructuring-bind (package . plist) full-melpa-style-recipe
