
If the singleton pattern of PEP 484 is too cumbersome, why not update [PEP 586](https://www.python.org/dev/peps/pep-0586/#legal-and-illegal-parameterization...) (which defines `Literal` type) to extend the legal parameterization by adding `object` variable declared as `Final` ? (Because `object` instances are immutable, so they meet the `Literal` criteria when they are also declared as `Final`) My previous example could be written: ```python from typing import Final, Literal, Union empty: Final = object() def func(x: Union[int, Literal[empty]]) -> int: return 0 if x is empty else x ``` This would be a quite simple and elegant solution, which doesn't require any additional stuff too. The enum singleton pattern could still be used when more customization (magic method overriding) is needed.