Bare Union, Callable and Tuple should not be classes
There is no reason for "bare" Union, Callable or Tuple (i.e. without [...]) to be a class. You shouldn't ever write isinstance(x, Union) for example, and in their bare form these are not acceptable as annotations either.