Christian Maeder <[EMAIL PROTECTED]> writes: > Indeed, I always try to avoid all warnings in my sources by using the > flag "-Wall", because I consider this to be good programming > style. (In particular warnings about unused and shadowed variables > prevented a lot of errors.) However some warnings are difficult to > avoid. So how difficult would it be to implement non-exhaustive > pattern warnings for nested patterns?
> data Color = Red | Green | Blue > f :: Color -> String > f x = case x of > Red -> "r" > _ -> " " ++ case x of > Green -> "g" > Blue -> "b" One way to do it, is to add _ -> error "This can never happen" I do this occasionally, and it catches some errors or mistaken assumptions on my part every now and then. (Perhaps one could even have a special funcition, "impossible", say, that would tell the compiler that a particular branch would never be taken. In case the compiler is smart enough to figure it out, and issue a warning for it -- it would know not to bother.) Or one might wish for some kind of pragma to turn off this warning selectively for a block of code. -kzm -- If I haven't seen further, it is by standing in the footprints of giants _______________________________________________ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users