**Arbitrary-rank tensors**
Oh, man, super well-caught! You're right, committing to invariance by default does put us in a tricky situation.
But then - trying this with a regular `TypeVar`, mypy seems to be happy with the following:
```
from typing import Generic, TypeVar
T = TypeVar('T')
class Tensor(Generic[T]):
pass
def expects_arbitrary_tensor(x: Tensor):
pass
def expects_concrete_tensor(x: Tensor[int]):
pass
x: Tensor = Tensor()
expects_concrete_tensor(x)
y: Tensor[int] = Tensor()
expects_arbitrary_tensor(y)
```
Any idea why that works?