[GHC] #29: Check for exhaustive patterns is broken
GHC
trac at galois.com
Tue Nov 17 04:45:43 EST 2009
#29: Check for exhaustive patterns is broken
---------------------------+------------------------------------------------
Reporter: nobody | Owner:
Type: bug | Status: new
Priority: lowest | Milestone: _|_
Component: Compiler | Version: 5.02
Resolution: None | Keywords:
Difficulty: Unknown | Os: Unknown/Multiple
Testcase: | Architecture: Unknown/Multiple
Failure: None/Unknown |
---------------------------+------------------------------------------------
Changes (by ganesh):
* failure: => None/Unknown
Comment:
This is an unsolvable issue. Consider this simplified example:
{{{
foo x | x == 0 = 0
| x /= 0 = 0
}}}
For "correct" Eq implementations these patterns are indeed exhaustive. But
(a) GHC has no evidence that all Eq implementations are "correct", and (b)
in general it would be undecidable to check whether arbitrary guards are
exhaustive or not.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/29#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list