First of all, I am not so happy about typing is increasing
Python runtime complexity.
TypeScript is the most successful language with gradual typing.
It has almost zero-cost about typing. It doesn't make JavaScript
runtime complex. I hoped Python goes in same way.
But Python went the different way. typing affected Python runtime
complexity, application memory footprint and startup time...
Anyway, I like the idea of using `|` for union.
I think there are two approaches to support it.
a) Add `|` to all types.
b) Support it only statically (`from __future__ import annotations`).
Both ideas are explained in PEP 604 already.
I prefer (b) to (a) because I don't want to increase runtime
behavior for static typing. But (b) seems more consistent with
PEP 560.