the point is that the data structures in erlang are chosen with abstractions necessary to support its features. "safe" for haskell is not the same as "safe" for erlang, and that why it's not easy to implement some of the things that are trivial in erlang, in haskell. Conversely, there are some things that are really safe in haskell (type safety and preventing process crashes) that you kind of have to add boilerplate to get confidence in erlang (or you just 'let it crash', which is a perfectly fine philosophy too). This is not saying that erlang is necessarily better, most of those problems have been "solved by kubernetes" anyways.