Rust will still depend on immutability for thread safety when using `&T` for data parallelism. The `&T` type will *never* simply mean aliasing reference, because otherwise it could allow all mutation that does not invalidate references, *without* `Cell`. This would be more flexible than `Cell`, because you could mutate a field without a by-value assignment or take references into fields of the mutable data.