It seems that `singledispatch` typing is not very accurate. In particular, it does not respect `TypeVar` used in the return type: ```python T = TypeVar("T") @singledispatch def my_fun( val: T, ) -> List[T]: return list(val) my_fun(5) my_fun("Ĝis la revido!") ``` Here the type of the returned value would always be revealed as `List[T]` instead of different types for different inputs.