>If you can't keep the "types" of your design in your head, your design might be broken.
Either that, or you might not work on toy projects.
Either that, or you might not work on toy projects.
In my own practice, most transformations don't involve relations over more than 5 variables with mostly obvious types. Yes, this is hard to use:
https://tronche.com/gui/x/xlib/window/XCreateWindow.html
But then 1) there might be nicer ways to design an API and 2) at these few places the implementor of the API can just insert value assertions.
It would be a toy project that only (or mainly) has those as all the types you need to remember -- so that just proves my point.
Also the 'type' of an email address is an unsolved problem -- if we're talking type checking. It's not a string, and it's not solvable with regex either. So bad example all around.