On Tue, Jan 13, 2009 at 11:21 AM, Tim Newsham <span dir="ltr">&lt;<a href="mailto:newsham@lava.net">newsham@lava.net</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I have seen several libraries where all functions of a monad have the<br>
monadic result (), e.g. Binary.Put and other writing functions. This is<br>
a clear indicator, that the Monad instance is artificial and was only<br>
chosen because of the &#39;do&#39; notation.<br>
</blockquote>
<br></div>
Maybe that was the initial reason, but I&#39;ve actually found the<br>
Binary.Put.PutM (where Put = PutM ()) to be useful. &nbsp;Sometimes<br>
your putter does need to propogate a result...</blockquote><div><br>But that&#39;s the whole point of Writer!&nbsp; Take a monoid, make it into a monad.&nbsp; Put as a monad is silly.<br><br>Luke<br></div></div>