
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 things 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 -- John Meacham - ⑆repetae.net⑆john⑈