On Tue, Jan 13, 2009 at 11:21 AM, Tim Newsham <newsham@lava.net> wrote:
Maybe that was the initial reason, but I've actually found theI 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.
Binary.Put.PutM (where Put = PutM ()) to be useful. Sometimes
your putter does need to propogate a result...