[Haskell-beginners] monad transformers

Michael P Mossey mpm at alumni.caltech.edu
Fri Aug 14 20:55:02 EDT 2009

In Martin Grabmuller's tutorial "Monad Transformers Step by Step", found here


he gives an example of composing ErrorT, StateT, ReaderT, and WriterT. Early in 
the paper, where he composes just ErrorT and ReaderT

     type Eval3 a = ReaderT Env (ErrorT String Identity) a

he uses 'ask' and 'throwError' in some example code. I notice that he doesn't 
have to lift throwError into the ErrorT monad. Why is this? Do I misunderstand 
something about monad transformers? Is it a convenience definition of throwError?

Same thing the rest of the paper. I don't see anywhere he lifts anything.


More information about the Beginners mailing list