This issue is to implement type annotations and configure `mypy` for type checking. Type annotations were introduced in [PEP484](https://www.python.org/dev/peps/pep-0484/) for Python 3.5.