You can mock mutable variables in actors. Actors and genservers are a first class module in the standard library. Elixir is not Haskell. There are plenty of places with accessible statefulness/mutability, it's just shielded in a functional wrapper and made slightly difficult to dissuade you from using statefulness unnecessarily, so you make fewer coding and concurrency mistakes in annoying places and you can focus on delivering features and solving hard problems.