I learned that wrap-reload from ring needs to capture the var itself not the value, but what if my value is dynamically generated and not a top level var?
(defn -main [options]
(let [app (make-app options)]
;; This won't work either:
;; (run-jetty (wrap-reload #'app))
(run-jetty (wrap-reload app))
))