Union undefined

Downcasting from `T + undefined` to `T` will have to be done explicitly, through TS's casting mechanism, especially when the use context is that of an overloaded function (doesn't impose a downcast itself)