What was wrong?
When using to_tuple on a function which operates on a generic type, type safety is not preserved.
TVal = TypeVar('TVal')
@to_tuple
def typing_to_tuple_generic(values: Sequence[TVal]) -> Iterable[TVal]:
yield from values
v_tuple_generic = typing_to_tuple_generic([1, 2, 3])
reveal_type(v_tuple_generic) # error: Revealed type is 'builtins.tuple[TVal`-1]'
How can it be fixed?
???