[Haskell-cafe] replicateM should be called mreplicate?

David Menendez dave at zednenem.com
Tue Apr 7 01:37:41 EDT 2009

On Mon, Apr 6, 2009 at 1:46 PM, Luke Palmer <lrpalmer at gmail.com> wrote:
> On Mon, Apr 6, 2009 at 11:42 AM, David Menendez <dave at zednenem.com> 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

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 <dave at zednenem.com>

More information about the Haskell-Cafe mailing list