I'm trying to understand why Literal["a", "b", "c"] results in an
object derived from _GenericAlias. It's not using TypeVar
substitutions, so it's not generic per se. Is it just to provide the
origin and arguments semantics?
That said, would would be the best way to distinguish between a "real"
generic alias from literals and unions (both of which derive from