As of 3.10 (PEP 604) we've gotten syntactical support for a common type operation— namely, typing.Union[Type1, Type2] can now be written as Type1 | Type2 . This is achieved via overriding the __or__ method.
I propose the ? symbol as sugar for typing.Optional, so that typing.Optional[MyType] can be written as MyType? . (Yes, this is lifted directly from C#.)
Thoughts? Is it unnecessary now that we can write MyType | None as of 3.10?