Just ran into an interesting issue with Literal
>>> l = Literal["foo", "bar", "baz"]
>>> "foo" in l
TypeError: typing.Literal['foo', 'bar', 'baz'] is not a generic class
>>>
>>> isinstance("foo", l)
TypeError: Subscripted generics cannot be used with class and instance checks
So Literal is a Schroedinger's generic.