Ah, yes, you&#39;re completely right. I completely agree that moving the function into the Maybe monad increases readability. This kind of function is what the Maybe monad was designed for.<div><div><br></div><div>Here is a revised patch.<br>

<br><div class="gmail_quote">On Sat, Jan 28, 2012 at 8:28 AM, Michael Snoyman <span dir="ltr">&lt;<a href="mailto:michael@snoyman.com">michael@snoyman.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">On Sat, Jan 28, 2012 at 1:20 AM, Myles C. Maxfield<br>
&lt;<a href="mailto:myles.maxfield@gmail.com">myles.maxfield@gmail.com</a>&gt; wrote:<br>
&gt; the fromJust should never fail, beceause of the guard statement:<br>
&gt;<br>
&gt;     | 300 &lt;= code &amp;&amp; code &lt; 400 &amp;&amp; isJust l&#39;&#39; &amp;&amp; isJust l&#39; = Just $ req<br>
&gt;<br>
&gt; Because of the order of the &amp;&amp; operators, it will only evaluate fromJust<br>
&gt; after it makes sure that the argument isJust. That function in particular<br>
&gt; shouldn&#39;t throw any exceptions - it should only return Nothing.<br>
&gt;<br>
&gt; Knowing that, I don&#39;t quite think I understand what your concern is. Can you<br>
&gt; elaborate?<br>
<br>
</div>You&#39;re right, but I had to squint really hard to prove to myself that<br>
you&#39;re right. That&#39;s the kind of code that could easily be broken in<br>
future updates by an unwitting maintainer (e.g., me). To protect the<br>
world from me, I&#39;d prefer if the code didn&#39;t have the fromJust. This<br>
might be a good place to leverage the Monad instance of Maybe.<br>
<span class="HOEnZb"><font color="#888888"><br>
Michael<br>
</font></span></blockquote></div><br></div></div>