Safety: tuples are sometimes returned from e.g. torch methods and user may pass those without checking.
Semantically, list is correct as enumerates similar items.
From code readability, using rearrange([x, y], ...) is also preferred to rearrange((x, y), ...)
Finally, rearrange([*x], ...) takes only 3 additional symbols
allowing tuples is a bad idea.
Safety: tuples are sometimes returned from e.g. torch methods and user may pass those without checking. Semantically, list is correct as enumerates similar items. From code readability, using rearrange([x, y], ...) is also preferred to rearrange((x, y), ...)
Finally, rearrange([*x], ...) takes only 3 additional symbols