Practical Type Inference Based on Success Typings (2006) [pdf]
it.uu.se
it.uu.se
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?
The research around erlang is due to the fact that it's heavily backed by Ericsson and the university in Uppsala (it's common for Uppsala master theses to be erlang-related). The other languages have more "neutral" origins.
Here is a more concise and approachable intro on the topic: