module documentation

Definitions of generic types so I can type hint more easily.

These may be unneeded and I should see if there is a better way to do what I want.

Type Variable T Undocumented
T =

Undocumented

Value
TypeVar('T')