
#16129: Incorrect non-exhaustive pattern warning with PatternSynonyms -------------------------------------+------------------------------------- Reporter: sjakobi | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: duplicate | Keywords: | PatternMatchWarnings, | PatternSynonyms Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect | Unknown/Multiple error/warning at compile-time | Test Case: Blocked By: | Blocking: Related Tickets: #15753 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by RyanGlScott): * status: new => closed * resolution: => duplicate Comment: Urk, please ignore what I wrote in comment:1. I forgot to add a `COMPLETE` pragma on `Id`, and that makes the whole example invalid. Here is my second attempt at a minimal example: {{{#!hs {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE ViewPatterns #-} module Bug where import Data.Functor.Identity {-# COMPLETE Id #-} pattern Id :: a -> Identity a pattern Id x = Identity x class Hm a where hm :: a -> a instance Hm (Identity a) where hm = id bug, workaround1, workaround2 :: Identity a -> a bug ia | Id a <- hm ia = a workaround1 ia | let ia' = hm ia , Identity a <- ia' = a workaround2 ia = a where Id a = hm ia }}} This time, I'm convinced that this is a duplicate of #15753, as this has the distinctive function-application-in-pattern-guard look that #15753 has. Closing as a duplicate. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16129#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler