[Haskell-cafe] Re: Monads aren't evil? I think they are.

Dan Doel dan.doel at gmail.com
Tue Jan 13 19:19:38 EST 2009

On Tuesday 13 January 2009 5:51:09 pm Luke Palmer wrote:
> On Tue, Jan 13, 2009 at 11:21 AM, Tim Newsham <newsham at lava.net> wrote:
> > I have seen several libraries where all functions of a monad have the
> >
> >> monadic result (), e.g. Binary.Put and other writing functions. This is
> >> a clear indicator, that the Monad instance is artificial and was only
> >> chosen because of the 'do' notation.
> >
> > Maybe that was the initial reason, but I've actually found the
> > Binary.Put.PutM (where Put = PutM ()) to be useful.  Sometimes
> > your putter does need to propogate a result...
> But that's the whole point of Writer!  Take a monoid, make it into a monad.
> Put as a monad is silly.

You mean it should be Writer instead?

When GHC starts optimizing (Writer Builder) as well as it optimizes PutM, then 
that will be a cogent argument. Until then, one might argue that it misses 
"the whole point of Put".

-- Dan

More information about the Haskell-Cafe mailing list