What problems can there be, if a form of “localized mutation” be used, instead of employing pure state?
(pure as in Haskell)
It is said that employing pure state, makes reasoning about the code harder.
Aside from this point, what is the advantage of pure state, over some other approaches to make state mutation safe? (From a developer’s experience point of view, in “real world” - in this context, decided by “majority” - projects)
(Other approaches like borrowing in Rust, capabilities in Pony and uniquness typing in Clean - they are very different and shouldn’t be placed together, from a language-design point of view; but in this context, we are looking at developer’s experience point of view, while writing code and applying different practices)
(Disclaimer: I am no programming language guru. I have used F# and Elixir and a bit of Erlang and OCaml - and played with some others)