1. Turns out that there was no order-dependent
issue in MyPy anymore; the issue was just
that overloads had to be immediatel next to
each other - interleaving the TypeVar lines
with the overload lines was causing MyPy to
stop seeing overloads as soon as the first
line that contained something else was hit.
2. Putting the smaller-arity overloads first
significantly speeds up MyPy checking in
the typical (handful-of-arguments) cases,
presumably because MyPy is checking them in
declaration order (possibly due to Python's
implementation of `typing.overload` rather
than any decision by MyPy - I didn't look).