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.