          (cause (concat cause (when cause straight-arrow)
                         (format "Looking for %s recipe" package))))
     (cl-dolist (source sources)
-      (when-let ((recipe (straight-recipes 'retrieve source cause package)))
+      (when-let* ((recipe (straight-recipes 'retrieve source cause package)))
         (cl-return recipe)))))
 
 (defun straight-recipes-list (&optional sources cause)

This function is placed on `before-save-hook' by
`straight-live-modifications-mode'."
  (when buffer-file-name
    (when-let ((local-repo (straight--determine-repo buffer-file-name)))
      (straight--register-modification-in-build-cache local-repo))))

(define-minor-mode straight-live-modifications-mode

  "Extract a value from a property list, or return a default.
PLIST is a property list, PROP is the key to search for, and
DEFAULT is the value to return if PROP is not in PLIST."
  (if-let* ((result (plist-member plist prop)))
      (cadr result)
    default))

