Non-exhaustive pattern match(es) warning in lambda functions

Christian Maeder Christian.Maeder at dfki.de
Thu Sep 23 04:11:25 EDT 2010


Am 22.09.2010 18:05, schrieb Simon Peyton-Jones:
> Good point. Simon and I have decided we agree.  I'll push a patch shortly.

For patterns in left hand sides (lhs) of let or where also no warnings
are issued.

data Foo = Bar Int | Baz

test3 :: Foo -> Int
test3 x = let Bar i = x in i

Will or should these cases be covered, too?

Cheers Christian

> 
> S
> 
> | -----Original Message-----
> | From: glasgow-haskell-users-bounces at haskell.org [mailto:glasgow-haskell-
> | users-bounces at haskell.org] On Behalf Of Mitar
> | Sent: 21 September 2010 07:44
> | To: glasgow-haskell-users
> | Subject: Non-exhaustive pattern match(es) warning in lambda functions
> | 
> | Hi!
> | 
> | Why GHC does not warn (with -Wall) about non-exhaustive pattern
> | match(es) warning in lambda functions? For example, this code:
> | 
> | data Foo = Bar | Baz
> | 
> | test1 :: Foo -> IO ()
> | test1 Bar = return () -- Pattern match(es) are non-exhaustive warning, OK
> | 
> | test2 :: Foo -> IO ()
> | test2 = \Bar -> return () -- No pattern match(es) are non-exhaustive, BAD
> | 
> | I think it would be quite useful to also catch such situations and
> | issue a warning.
> | 
> | 
> | Mitar
> | _______________________________________________
> | Glasgow-haskell-users mailing list
> | Glasgow-haskell-users at haskell.org
> | http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
> 
> 
> 
> 
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


More information about the Glasgow-haskell-users mailing list