<br><font size=2 face="sans-serif">Hello,</font>
<br><tt><font size=2><br>
&gt; readM with fail defaults to ioError for almost all Monads, and so
admits<br>
&gt; many dangerous programs, which is against the intent of the proposal
<br>
&gt; in the first place.<br>
&gt; </font></tt>
<br><tt><font size=2>ioError is only in the IO monad and is catchable.
I think the problem is when fail defaults to error which can be anywhere
and is not catchable. </font></tt>
<br><tt><font size=2><br>
&gt; It seems with Conor's suggestion of a <br>
&gt; <br>
&gt; &nbsp; &nbsp; maybeReturn :: MonadPlus m =&gt; Maybe a -&gt; m a<br>
&gt; &nbsp; &nbsp; maybeReturn = maybe mzero return<br>
&gt; <br>
&gt; we can still have the by-default-safe maybeRead, that doesn't admit
<br>
&gt; exception throwing opportunities.<br>
&gt; </font></tt>
<br><tt><font size=2>Isn't the MonadPlus approach also by-default-safe?</font></tt>
<br>
<br><tt><font size=2>-Jeff</font></tt>
<br>
<br>
<span style="font-family:'Arial',sans-serif; font-size:8pt; color:#000000">---<br>
<br>
This e-mail may contain confidential and/or privileged information. If you <br>
are not the intended recipient (or have received this e-mail in error) <br>
please notify the sender immediately and destroy this e-mail. Any <br>
unauthorized copying, disclosure or distribution of the material in this <br>
e-mail is strictly forbidden.</span>