Unless I misunderstand something (quite possible!), the following idiom does not currently work with type checkers and is not supposed to work:X = foo()
def bar(x: Literal[X]) -> None: ...This means that "X = sentinel()" would need to be special-cased.