The goal is to make it possible to add type checking annotations to 3rd party modules (and even to the stdlib) while allowing unaltered execution of the program by the (unmodified) Python 3.5 interpreter

Mypy is a central piece in Guido's proposal. Indeed, Guido says, mypy could be seen as a lint-like static checker for Python to be used to check a program's type correctness at compile time, or when running it under mypy Python interpreter. On the other hand, the program execution would remain unaffected by the type annotations when run under Python official interpreter, so no runtime type checking overhead would ensue. The key requirement for this to be possible is that the syntax used for type annotations must be valid Python 3 syntax, which is one of mypy's features. Indeed, mypy uses function annotations, a Python 3 syntax for adding arbitrary metadata annotations to functions, to specify type signatures.

Given all of this, Guido suggests that a PEP could be written, accepted and implemented in time for Python 3.5. This would entail two main branches of work:

Reassessing the definition of function annotations to restrict their use to type annotations.

Providing a specification for what to add to Python 3.5, which Guido suggests be reduced to a minimum.

The actual type checker will not be integrated with the Python interpreter, and it will not be checked into the CPython repository. The only thing that needs to be added to the stdlib is a copy of mypy's typing.py module. This module defines several dozen new classes (and a few decorators and other helpers) that can be used in expressing argument types. If you want to type-check your code you have to download and install mypy and run it separately.

Guido's proposal raised some interest both on Python-ideas mailing list and on reddit. Besides positive reactions from several contributors to the discussion, concerns were raised about restricting function annotations to type signature specifications, and about the use of comments to convey type definitions.