Adding Optional Static Typing to Python looks like a quite complex thing, but useful too: http://www.artima.com/weblogs/viewpost.jsp?thread=85551
I have just a couple of notes: Boo (http://boo.codehaus.org/) is a different language, but I like its "as" instead of ":" and "->", to have: def min(a as iterable(T)) as T: Instead of: def min(a: iterable(T)) -> T: Sometimes it can be useful to mix parts with static typing and parts without it in the same module (because dynamic typing is very useful sometimes), but some other times you want to be sure to have a full typed and checked module. So maybe a kind of compiler directive (like the # used to define encoding) can be used to define a module fully typed and fully checked by a pychecker-like. (A module with static typing can be very useful for a "true" python compiler too.) Bear hugs, bearophile -- http://mail.python.org/mailman/listinfo/python-list