I believe that's where core.typed is going: http://frenchy64.github.io/2015/06/19/gradual-typing.html
Typed and untyped code must (and will soon) be able to cooperate in providing compile-time and run-time type checking in Clojure.
Typed and untyped code must (and will soon) be able to cooperate in providing compile-time and run-time type checking in Clojure.
There was a post about it, but the best I could find is a recent paper: http://frenchy64.github.io/papers/typed-clojure-draft.pdf