Changing the philosophy of a programming language, especially one with existing applications of considerable size, is not a task with a high likelihood of success. In this paper, rather than starting from a static type system and trying to squeeze Erlang into it, we followed a different approach.
I've always wondered why people still try to shoehorn type systems into dynamic languages. So, why isn't there a Dialyzer for Ruby or Python or JS?