As long as we are doing this, perhaps we should also discourage the
use of (head list)?
-Alex-
______________________________________________________________
S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com
On Fri, 17 Nov 2006, Donald Bruce Stewart wrote:
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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe