<div dir="ltr">I am strongly against this, as sometimes you <i>do</i> want to use fromJust. For example:<div><br></div><div>1. Quick and dirty scripting/examples where you don't care about error-proofing your work and just want it to be done quickly. In that context, fromJust is a good function.</div><div>2. You know by construction that it is a Just constructor. This is usually not a good design, but sometimes it's useful. Writing an (error "fromJust") is possible, but annoying.</div><div><br></div><div>IMHO removing fromJust would be a bad idea; although it may be overused there are certainly times and places where it is useful. In addition, it seems like the <i>real</i> issue is that "error" needs to give better stack traces, so that you do not need to do as Erik suggests and write "<span style="font-size:12.8000001907349px">   fromMaybe (error "Module.functionName : unexpected Nothing") x". But I think that by 7.12 or 7.14 this will happen, as there is work being done in this direction. It may be a good idea to change the documentation of `fromJust` to say something like "please never use this unless you really know you want to".</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">(That said, I do wish that `head` and `tail` were replaced by `headMay` and `tailMay`, which you could then use with `fromJust` if you wanted to. But that's another discussion for adding things from `safe` to `base`, unrelated...)</span></div><div><br></div><div>Strong -1. </div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 23, 2015 at 9:51 PM, Chris Allen <span dir="ltr"><<a href="mailto:cma@bitemyapp.com" target="_blank">cma@bitemyapp.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm strongly in favor of removing this so as not to confuse new people with partial functions that have impossible type signatures.<br>
<br>
+1<div class="HOEnZb"><div class="h5"><br>
<br>
On 02/23/2015 11:49 PM, Ivan Lazar Miljenovic wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 24 February 2015 at 16:42, Erik de Castro Lopo <<a href="mailto:mle%2Bhs@mega-nerd.com" target="_blank">mle+hs@mega-nerd.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
We currently have in the Data.Maybe module from base:<br>
<br>
      fromJust :: Maybe a -> a<br>
<br>
which newbies often find using hoogle or other search tools and is<br>
a huge trap. *Every* usage of the above can be replaced by using<br>
<br>
       fromMaybe :: a -> Maybe a -> a<br>
<br>
which forces the user to provide a default value for the case where<br>
the Maybe a is a Nothing.<br>
<br>
The idea would be to deprecate fromMaybe for 7.12 and remove it<br>
completely later.<br>
<br>
Comments?<br>
</blockquote>
I've used fromJust in the past when I knew the value would be Just by<br>
construction.<br>
<br>
That said, I could always have written my own fromJust function with a<br>
custom error message, and did switch some of them to direct pattern<br>
matches (so that at least the error message said *where* the error<br>
occurred).<br>
<br>
So I'm undecided; maybe (no pun intended!) -0.1.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Erik<br>
--<br>
------------------------------<u></u>------------------------------<u></u>----------<br>
Erik de Castro Lopo<br>
<a href="http://www.mega-nerd.com/" target="_blank">http://www.mega-nerd.com/</a><br>
______________________________<u></u>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" target="_blank">http://mail.haskell.org/cgi-<u></u>bin/mailman/listinfo/libraries</a><br>
</blockquote>
<br>
<br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" target="_blank">http://mail.haskell.org/cgi-<u></u>bin/mailman/listinfo/libraries</a><br>
</div></div></blockquote></div><br></div>