Free monads and monad transformers