According to me there is nothing wrong in your use case. And also
val aTuple= #("my",2,"cents")
val aString=aTuple._0
val aNumber=aTuple._1
Scala use this way of accessing tuple. I think this code is horrible to see, difficult to read and a nightmare to mantain. Imagine if your access to tuple lements happens to be n lines far from where you define it, every time you have to search for the tuple declaration just to remember the order of the tuple elements. And if you later add a single element to the tuple, say:
val aTuple= #("I","put","my",2,"cents")
the you have to change all the code that access aTuple to add +2 on every index. Really a problem!
In this case is far better to use a class, even just to declare only two or three fields.
So according to me this has to be avoided by the compiler.
What I’m suggesting is basically to allow only “Anonymous” tuples. You can use them only to assign more then one variable at once, but you’re not allowed to assign a tuple object to a variable.
Maybe this does not even require the presence of a tuple class, and could be reduce to syntactic sugar for the compiler…