The Clojure compiler is currently a large Java class. Writing it in Clojure will produce many benefits.
- Provide discrete analysis phase yielding Clojure data structures capturing semantics of code.
- Split out type reflection into API
- Split out code gen into API
- Multiple back ends
- Java source
- Java bytecode
- Remove warts from current design
- e.g. use of vars and binding