IO Monad Considered Harmful

"First-class 'Statements'": Looking at IO as data, through a Haskell case study.

"I like Haskell because it lets me live inside my world"; an Ode to Functor and Monad (xpost from r/haskell)