@ExpHP I think you are mostly right in the sense that let foo = bar;
isn’t actually an immutable binding and that you can mutate the contents of foo
by moving ownership away from foo
simply with identity(foo).mutate_and_stuff();
.
But I think you are putting things too strongly. I do think the current situation does protect you from a certain class of mistakes by making you more conscious of mutation. That said, if you truly want immutable bindings, you’d need something like freeze T
as we discussed at Forever immutable owned values (modulo interior mutability).