dons:
> dmhouse:
> > On 16/11/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> > >And if we are absolutely positive that the value is (Just x),
> > >we can always write
> > > maybe (assert False undefined) id v
> >
> > It should be pointed out that Data.Maybe does export a less well-known
> > function, fromMaybe:
> >
> > fromMaybe z = maybe z id
> >
> > This can be used to make the 'maybe X id' case a bit tidier (although
> > technically it's not a save on characters).
>
> How controversial would a proposal to {-# DEPRECATE fromJust #-} be, in
> favour of:
>
> Just _ = x -- which will give you the precise line number
>
> maybe (assert False)
>
> maybe id
>
> fromMaybe
>
> It seems to me this is one cause of mysterious newbie errors we
> could easily discourage, with little harm.
Btw, I'm not seriously suggesting removing it ;)
It could be discouraged ever so slightly in the haddocks though.
I'd encourage those worried about fromJust not to use it though, and
perhaps try:
import Debug.Trace.Location
fromMaybe (failure assert "my just was nothing")
(Nothing :: Maybe ())
$ ./a.out
*** Exception: A.hs:5:34-39: my just was nothing
instead of:
fromJust (Nothing :: Maybe ())
$ ./a.out
*** Exception: Maybe.fromJust: Nothing
While Dana and Neil work on more tools for spotting these for us.
-- Don
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe