Monad transformers, free monads, mtl, laws and a new approach | Dark Hacker News