A feature of tables, which makes some algorithm implementations cumbersome, is that they're mutable. A consequence is that they don't support cheap structural equality.
- Supposing that we denote tuples with angles <...>, I'd like to have assert(<1,2,3>==<1,2,3>);
- I'd like this test to be as fast as string comparisons.
- I'd want tuples to work well as table keys (easy if they have cheap hashing and equality).
- This would require tuples to be immutable, and to only accept to contain immutable values.
- Since they won't be mutable, the base library working on them should be purely functional. Doing functional stuff with table always feels dangerous, because functional invariants break down as soon as someone alters a table's content.
This means that it wouldn't be suitable as a type for "...". However, I believe it's a non-issue: non-trivial manipulations of "..." are easy if you put everything in a table "{...}"; and I'd be very curious to be shown any profiling result which pinpoints this "{...}" idiom as a cause of real-life inadequate performances...