   necessary by writing out the data to a new file in the `target`
   directory. Returns `nil` if this is not possible."
   type)
+
+(defmethod model-path :default [_] nil)
 
 (defmethod model-path java.lang.String
   [filename]


(defn file-last-modified [fname] (.lastModified (io/file fname)))

(defmacro make-step
  [in out & body]
  `(do (if (.exists (io/file ~in))

  (if (.exists (io/file (.getPath url)))
    (.getPath url)
    (let [filename (str "target/stan/" (last (str/split (.getPath url) #"/")))
          _ (io/make-parents filename)
          content (slurp url)]
      (when (changed-content? filename content)
        (spit filename (slurp url)))
      filename)))

(defn make
