Ivan Miljenovic <ivan.miljeno...@gmail.com> wrote: > On 8 July 2010 13:48, Ertugrul Soeylemez <e...@ertes.de> wrote: > > Ivan Miljenovic <ivan.miljeno...@gmail.com> wrote: > > > >> mtl's advantages: wide pre-existing user base, etc. > > > > As said, I don't think this is a valid argument. Windows has a much > > larger user base than Linux. C++ has a much larger user base than > > Haskell. We still use Haskell, and many of us use Linux. > > My point was, was that if you need to pick a monad transformer library > and you've never done any before, then some people are likely to > choose mtl because it's currently the most-used library, it comes with > the platform and if they need to interact with another package that > uses a monad transformer library then it's more likely to be using mtl > than anything else.
Yes, that's true. And my point is that that doesn't mean you shouldn't use anything else. > >> transformers (especially when used with monads-{fd,tf}) advantage > >> over monadLib: pre-existing type aliases, documentation, easier to > >> port old code that was using mtl. > > > > If you don't use monadLib-specific features, then most code will run > > in monadLib as well as transformers without changes. The Haddock > > documentation of monadLib is quite brief, but if you know how to use > > monad transformers, you won't have any problems. > > I for one don't know how to use monad transformers (I mean, I've read > the section in RWH and could figure it out, but off the top of my head > I can't recall how to do all the lifting stuff, etc.). They are easy to use and very useful, especially to make code more modular. You should try them out. > > And I don't know what you mean by "pre-existing type aliases". > > http://hackage.haskell.org/packages/archive/transformers/0.2.1.0/doc/html/Control-Monad-Trans-State-Lazy.html#t%3AState MonadLib has newtypes instead of type aliases for them. But the implementations are the same (M = MT Id). Interestingly I need transformers much more often than ready-made monads. Greets, Ertugrul -- nightmare = unsafePerformIO (getWrongWife >>= sex) http://ertes.de/ _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe