May 27, 2020
2:22 p.m.
I believe that relying on a type checker-specific type inferencing behavior, intentionally left undefined by PEP 484, is what one normally indicate buy not specifying any concrete type, so just leaving "f2" not annotated in this case. If a type checker is able to deduce which type "f2" returns, it will. Having to use some special type for that will only unnecessarily clutter the code of all the small internal functions that otherwise don't need to be explicitly type hinted.