Law of exclusivity means that we need exclusive access when mutating an object.
Consequences:
- While reading an object, nobody can change it
- While mutating an object, nobody can read or change it
With law of exclusivity hold, we don’t need explicit synchronization since we can have have shared mutable data.
Value-oriented programming is a paradigm that enforce the law of exclusivity, and Rust borrow checker also enforce that.