I like this idea. 
 
The ~foo for Optional is... not that obvious.  Not sure it's a win.


 I agree. Seems like `foo | None` is just as readable. Assuming that None would be swapped out for NoneType, of course.