core-typed

Typed Clojure, an optional type system for Clojure
2020-11-20T00:36:39.014800Z

here's something fun I cooked up by combining the reader and analyzer. it sort of fully qualifies everything even under macros

typed.clj.refactor=> (refactor-form-string "+" {})
"clojure.core/+"
typed.clj.refactor=> (refactor-form-string "(defn foo [a] (+ a 3))" {})
"(clojure.core/defn foo [a__#0] (clojure.core/+ a__#0 3))"
typed.clj.refactor=> (refactor-form-string "(defmacro foo [a] `(+ ~a 3))" {})
"(clojure.core/defmacro foo [a__#0] `(+ ~a__#0 3))"