<div dir="ltr">I understand why the normal signature is:<div><br></div><div>    when :: Monad m =&gt; Bool -&gt; m () -&gt; m ()</div><div><div>    unless :: Monad m =&gt; Bool -&gt; m () -&gt; m ()</div><br class="Apple-interchange-newline">
</div><div>But why isn&#39;t there also:</div><div><br></div><div>    when_ :: Monad m =&gt; Bool -&gt; m a -&gt; m ()</div><div><div>    unless_ :: Monad m =&gt; Bool -&gt; m a -&gt; m ()</div><br class="Apple-interchange-newline">
</div><div>That is, I agree that results shouldn&#39;t be discarded &quot;by default&quot;, but it should be easy to get rid of them if they are unneeded.</div><div><br></div><div>Thanks,</div><div><br></div><div>    Oren Ben-Kiki</div>
<div><br></div></div>