-Wall and the fail method
ekmett at gmail.com
Sat May 23 01:05:28 UTC 2015
It probably doesn't belong in -Wall, as it is a fairly common idiom to use
fail intentionally this way, but it could pretty easily be added to the
'do' and list/monad comprehension desugaring to issue a separate warning
that we don't turn on by default.
Making it possible to see where you use 'fail' explicitly might be a nice
step on the road towards splitting out MonadFail though.
Herbert has been working up a plan we can put forth to the community for
how to proceed on that front. It may make sense to roll any such warnings
into that effort.
On Fri, May 22, 2015 at 8:06 PM, Nikita Karetnikov <nikita at karetnikov.org>
> Can -Wall be extended to report pattern match failures in do
> expressions, like it does for case expressions?
> Prelude> :set -Wall
> Prelude> let f = do Just x <- return Nothing; return x
> Prelude> let g = case Nothing of Just x -> x
> <interactive>:9:9: Warning:
> Pattern match(es) are non-exhaustive
> In a case alternative: Patterns not matched: Nothing
> One can argue that it's similar to undefined, error, and various
> unsafeSomething functions, which I think should be reported as well, if
> possible. But these things can be found already with a simple grep
> while a pattern match cannot.
> I bet it has been discussed already, but "fail" is a terrible search
> term, so I cannot find anything relevant in the archives nor in the bug
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Glasgow-haskell-users