Presenting Erlang and Haskell as lacking mutable state, and thus free of concurrency problems, is only approximately true. While plain variables may be unchangeable after assignment, via actors or other syntax, mutable state can definitely be created in functional languages.