Changes in new versions / Clojure 1.10

;; *** in version 1.10: ***
(require '[clojure.datafy :refer [datafy nav]])

;; datafy asks an object to describe itself as plain data -
;; here a java.io.File becomes an ordinary map
(datafy (java.io.File"data.edn"))
;=> {:file/name "data.edn", :file/path "data.edn", ...}

;; nav lets tools walk into a value found inside datafied data,
;; even when going further requires extra work (like a DB query)
(nav (datafy (java.io.File".")) :file/path "data.edn")