Short answer: None .
Long answer:
Rust really works very well with immutable structures (this gives more guarantees than C const , for example).
Co-ownership is not a problem ( Rc / Arc ) with a truly immutable value, and you can easily borrow several times into an immutable structure. You cannot move while borrowing, but you can get around this by passing proxy owners (via Rc or Arc again) instead of links.
One problem in Rust that you might not have in Haskell is mixing variable values ββwith Cell or RefCell , since you can create loops and they won't be built because Rust doesn't have a GC.
Matthieu M.
source share