
#8779: Exhaustiveness checks for pattern synonyms -------------------------------------+------------------------------------- Reporter: nomeata | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 7.8.1 checker) | Keywords: Resolution: | PatternSynonyms Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by mpickering): Reid, your first of bullet points makes a lot of sense to me but I am still worried about abstraction. For example, the only way to construct and deconstruct `Command`s is by using `AddOne` and `MinusOne` thus a complete set of patterns would be `AddOne` and `MinusOne`. When looked through, there are many more values which inhabit this type. So it seems under your proposal that this would cause a warning. {{{ module M ( Command(AddOne, MinusOne) ) where data Command = Command String pattern AddOne = Command "AddOne" pattern MinusOne = Command "MinusOne" }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8779#comment:34 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler