module documentation

Custom Types so mypy can check the code
Class TypeLike This is a union of all sort of types