[Haskell-beginners] monad transformers
Brandon S. Allbery KF8NH
allbery at ece.cmu.edu
Fri Aug 14 21:05:14 EDT 2009
On Aug 14, 2009, at 20:55 , Michael P Mossey wrote:
> In Martin Grabmuller's tutorial "Monad Transformers Step by Step",
> found here
>
> http://user.cs.tu-berlin.de/~magr/pub/Transformers.pdf
>
> 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?
Look for definitions of the form
> instance MonadReader Eval3 where ...
> instance MonadError Eval3 where ...
These effectively "import" definitions of ask, throwError, etc. with
implicit lifting.
--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university KF8NH
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part
Url : http://www.haskell.org/pipermail/beginners/attachments/20090814/9417d865/PGP.bin
More information about the Beginners
mailing list