[Haskell] ANN: monadLib 2.0

John Meacham john at repetae.net
Mon Mar 20 21:47:12 EST 2006

On Sun, Mar 19, 2006 at 10:02:57PM -0800, Iavor Diatchki wrote:
> There is now a new version of 'monadLib': a library of monad
> transformers for Haskell.
> 'monadLib' is a descendent of 'mtl', the monad template library that
> is distributed with most Haskell implementations.  The library web
> page is at:
> http://www.csee.ogi.edu/~diatchki/monadLib
> Comments and feedback are very welcome!

it looks very interesting. I use the mtl extensively in pretty much
everything I do and am interested in any developments with it. a couple

whenM,forEach2_, and forEach3_ should have types
whenM :: Monad m => m Bool -> m a -> m ()
forEach2_ :: Monad m => [a] -> [b] -> (a -> b -> m c) -> m ()
forEach3_ :: Monad m => [a] -> [b] -> [c] -> (a -> b -> c -> m d) -> m ()

Also, I am curious why some of the names seem to have been changed from
what the mtl provides, it would be nice if it were mostly a drop in
replacement as there is substantial mtl code out there.

mainly I am thinking of
ask -> getR
local -> updateR

also, it looks like some of the very useful utility routines in the
current mtl such as 'asks' arn't included.

though, I would be very happy to shorten 'Identity' to 'Id'. having a
standard identity newtype is surprising useful all over the place, even
when not used as a monad.

deriving Typeable for everything would be good too.

Also, it looks like some of your monads overlap with what is provided by
the Applicative (Idiom) and friends classes to be included in the next
version of ghc, perhaps you can make a version of monadLib that builds
on those?


John Meacham - ⑆repetae.net⑆john⑈

More information about the Libraries mailing list