On Mon, Apr 6, 2009 at 1:46 PM, Luke Palmer <[email protected]> wrote: > On Mon, Apr 6, 2009 at 11:42 AM, David Menendez <[email protected]> wrote: >> >> Of course, this suggests that mfix should be fixM, so perhaps a better >> distinction is that mplus and mfix need to be defined per-monad, >> whereas filterM and replicateM are generic. > > Don't you think that is an incidental distinction, not an essential one? It > would be like naming our favorite operations mbind and joinM, just because > of the way we happened to write the monad class.
Fair enough. I only added that comment when I noticed that my explanation for picking replicateM over mreplicate also applied to mfix. Looking through Control.Monad, I see that all the *M functions require Monad, whereas the m* functions require MonadPlus (or MonadFix). I wonder to what extent that pattern holds in other libraries? -- Dave Menendez <[email protected]> <http://www.eyrie.org/~zednenem/> _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
