This was originally a backport of the standard library 'typing' module to Python versions older than 3.5. Typing defines a standard notation for Python function and variable type annotations. The notation can be used for documenting code in a concise, standard format, and it has been designed to also be used by static and runtime type checkers, static analyzers, IDEs and other tools. Today, 'typing_extensions' serves two related purposes: - Enable use of new type system features on older Python versions. For example, 'typing.TypeGuard' is new in Python 3.10, but 'typing_extensions' allows users on Python 3.6 through 3.9 to use it too. - Enable experimentation with new type system PEPs before they are accepted and added to the 'typing' module.