3 Approaches to Monadic API Design in Haskell
blog.pusher.com