
I recently came across an announcement about the the Strongtalk system, which contains the first fully developed strong, static type system for Smalltalk. I wondered whether there might be useful ideas there for those looking into static typing for Python.
You have to download and install their Windows app and run it in order to get some documentation about the type system. I did, and it's pretty theoretically clean (as you'd expect from a Smalltalk system). It has a pretty conventional way to describe method signatures, including a way to define type variables implicitly, so you can define e.g. a function taking two lists whose return type is a tuple of the item types of the arguments. One thing that I hadn't seen before is the little language they use that allows you to say things like that. --Guido van Rossum (home page: http://www.python.org/~guido/)