<div>Henning, Felipe, </div>
<div> </div>
<div>In the end, neither solution (changing the type of (&gt;&gt;) to require explicit &#39;ignores&#39; vs. coping with the occasionally discarded important result) is perfect, so the bikeshed is highly unlikely to be repainted, especially since due to it being initially painted the other way, the preponderance of existing monadic code would have to rewritten to make any shift in the typing of (&gt;&gt;).</div>

<div> </div>
<div>Even if we had a time machine and wanted to go back and re-spec Monad again without the burden of prior art, I&#39;m not entirely sure I would be in favor of enforcing an explicit discard through typing. Somewhat tongue in cheek, it seems that a &#39;must keep or consciously discard&#39; parameter is more of the domain of a substructural type system than a library.</div>

<div> </div>
<div>That said, I do support the creation of an explicit ignore method, if only because the &#39;() &lt;$&#39; idiom is less obvious in its intent at first glance and that the applications of ignore go beyond (&gt;&gt;), because of the types of mplus and (&lt;|&gt;).<br>
</div>
<div>-Edward Kmett</div>
<div> </div>
<div class="gmail_quote">On Thu, Jun 11, 2009 at 4:26 PM, Felipe Lessa <span dir="ltr">&lt;<a href="mailto:felipe.lessa@gmail.com">felipe.lessa@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div class="im">On Thu, Jun 11, 2009 at 04:14:22PM -0400, David Menendez wrote:<br>&gt; Aside from assertions that this is a bad thing because you say so,<br>&gt; what evidence do we have that this is a problem?<br><br></div>
The wiki mentions the problem with forgetting the results of an<br>operation.  Another problem is using functions that needlessly<br>produce results because you&#39;re interested in the side effects<br>only.  For example,<br>
<br> do mapM something1 list<br>    something2<br><br><br>(Hmmm, would something like<br><br> {-# RULES &quot;mapM/mapM_&quot; mapM = mapM_ #-}<br><br>work nicely?)<br><br>--<br><font color="#888888">Felipe.<br></font>
<div>
<div></div>
<div class="h5">_______________________________________________<br>Libraries mailing list<br><a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br><a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/mailman/listinfo/libraries</a><br>
</div></div></blockquote></div><br>