(Haskell also allows mutability that is visible to the semantics of the program, that's where the famous monads come in.)