@neauoire
It feels like a wonderful logical extreme to pure functional programming. Any interaction that can't be handled by matching, copying, and moving data is impure.

Your addition operation is now

(+) : Int -> Int -> IO Int