Is Haskell really a purely functional language considering unsafePerformIO?
The Languages We Call Haskell unsafePerformIO is part of the Foreign Function Interface specification, not core Haskell 98 specification. It can be used to do local side effects that don’t escape some scope, in order to expose a purely functional interface. That is, we use it to hide effects when the type checker can’t do … Read more