On Monday, 11 January 2021 at 20:36:30 UTC, Ola Fosheim Grøstad
wrote:
On Monday, 11 January 2021 at 19:25:06 UTC, Paul Backus wrote:
I agree that immutability has benefits, but I don't see why
tuples should be singled out for special treatment in this
regard.
Oh, and another reason is that scalars can usually be passed by
value with impunity, but you might want to pass tuples by
reference as it could save you some copying in a significant
way. And pass by reference would make the tuple vulnerable to
mutation... (since we don't have head-const).
All of what you're saying applies equally well to any struct type
as it does to tuples.
It sounds like what you really want is for D *in general* to have
head-const, for all types. So there's no reason to force it on
tuples in particular. Just write your DIP for 'readonly', and if
it's accepted, you can write `readonly(Tuple)` and get the result
you want for free.