The author of Typed Clojure has done a presentation on that subject.
https://www.youtube.com/watch?v=yG9CffLlXx0
So if I understood correctly:
An optional type system can be toggled at any time but the type checking requires type annotations on all of your code (with all its dependencies).
A gradual type system is also optional but can check portions of your program even if they call into un-typed portions of your program and also check typed code called from un-typed code.
I wonder if there could be any opportunity to integrate this more with Spec. There seems to be at least some overlap between Typed Clojure and Spec. I could imagine that it would be cool if you could annotate your functions using one way and have some specs be validated statically.
2 comments