Opinionated vs modular web frameworks

Except that side-effects like printing IO are accessible to you at any time. (And that’s not really a bad thing – it makes debugging a whole lot easier; in Haskell there are weird ‘hacks’ like UnsafePerformIO for exactly this reason – ). And I guess that ETS also breaks the ‘immutability’-world a little bit? (Of course, it, just like the process-dictionary, are mainly to be used as optimizations rather than initial go-to tools).

Still, I completely agree with you that the reasoning within a process is very easy because of the large amount of referential transparency, and it’s not that difficult to think about any other processes as being black boxes that might send you messages or you might send them messages at any given time.