
#11503: TypeError woes (incl. pattern match checker) -------------------------------------+------------------------------------- Reporter: goldfire | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.1 Resolution: | Keywords: | PatternMatchWarnings Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by simonpj): * keywords: => PatternMatchWarnings Comment: I think you are saying that {{{ type family NotInt a where NotInt Int = False ~ True NotInt _ = (() :: Constraint) }}} makes everything work. That's because the pattern-match warning infrastructure treats `False ~ True` as definitely insoluble. But apparently it doesn't treat `TypeErorr blah` as definitely insoluble. That's because when we solve `[G] NotInt Int`, we get `[G] TypeError ... ~ fsk, [G] fsk`, and neither is treated as insoluble. I'm sure this can be dealt with, but it'll need a little care. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11503#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler