Francis> "Every well-formed expression of the language can be assigned a Francis> type that can be deduced from the constituents of the Francis> expression alone." Bird and Wadler, Introduction to Functional Francis> Programming, 1988
Francis> This is certainly not the case for Python since one and the Francis> same variable can have different types depending upon the Francis> execution context. Example : Francis> 1- if a is None: Francis> 2- b = 1 Francis> 3- else: Francis> 4- b = "Phew" Francis> 5- b = b + 1 Francis> One cannot statically determine the type of b by examining the Francis> line 5- alone. Do you have an example using a correct code fragment? It makes no sense to infer types in code that would clearly raise runtime errors: >>> "Phew" + 1 Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: cannot concatenate 'str' and 'int' objects Also, note that the type assigned to an expression may be nothing more than "object". Clearly that wouldn't be very helpful when trying to write an optimizing compiler, but it is a valid type. Skip -- http://mail.python.org/mailman/listinfo/python-list