Why GHC doesn't warn about LHS nullary-constructor pattern bindings?

Christian Maeder Christian.Maeder at dfki.de
Thu Jul 19 14:20:29 CEST 2012


You're right. That's a good case for a feature request.

In fact any binding that binds no variables should be warned about:

   let Just _ = ...

Cheers Christian

Am 19.07.2012 12:50, schrieb Herbert Valerio Riedel:
> Hello,
>
> Recently, I was a bit suprised that GHC didn't warn about useless
> `where` definitions such as the following when using `-Wall` (and I
> couldn't find a respective warning GHC CLI flag which would have enabled
> reporting a warning in this case -- unless I missed it)
>
>    module Foo where
>
>    foo :: Int -> Int
>    foo n = n + 1
>      where
>        Nothing = Just n
>
> ...wouldn't it be a sensible thing for GHC to warn in such cases
> (i.e. when the LHS of a pattern binding is a nullary constructor), or is
> there a useful application for this construct?
>
> (In my original case, I ended up with such a "dead" construct after some
> "unsound" code refactoring, and it would have helped me catch my error
> earlier, if GHC would have pointed out that somethings fishy with my
> code)
>




More information about the Glasgow-haskell-users mailing list