If you declare a function effect-free, and try to perform effects inside it, then you'll get a compiler error.
You are still allowed (and it's common practice!) to declare your functions as effectful.
Unfortunately the 'signal' of this message is often lost in the noise: For every Haskeller happily writing effects, there's 9 non-Haskellers writing that 'Haskell's big mistake was being pure and not allowing effects - you should use X instead'.
If you declare a function effect-free, and try to perform effects inside it, then you'll get a compiler error.
You are still allowed (and it's common practice!) to declare your functions as effectful.
Unfortunately the 'signal' of this message is often lost in the noise: For every Haskeller happily writing effects, there's 9 non-Haskellers writing that 'Haskell's big mistake was being pure and not allowing effects - you should use X instead'.