I don't know if I'm running into a bug or I'm just not doing things right. I was able to minimize my problem to this using Python 3.5 and mypy 0.660: from abc import ABC, abstractmethod from typing ...
def f(x: Union[int, str, List, Tuple]) -> None: if isinstance(x, (str, (int, tuple))): print(x[1]) results in error: Argument 2 to "isinstance" has incompatible type ...