Much useful information is contained in Clojure's analysis compilation phase. There should be an interface to collect this information a la carte, in a nice form (ie. a map).
- build an interface to the current Compiler
- takes Form, results in Map
- test the things we can do with this information, is it useful?
- request to add some information to the compiler to provide missing information
- iterate until useful
Building interface: https://github.com/frenchy64/analyze/blob/master/src/analyze/core.clj