[GHC] #13672: Pattern match on LHS of pattern synonym declaration

#13672: Pattern match on LHS of pattern synonym declaration -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: (none) Type: feature | Status: new request | Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Keywords: | Operating System: Unknown/Multiple PatternSynonyms | Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- Changing `ZipList` to a newtype {{{#!hs import Data.Bifunctor.Fix import Data.Bifunctor.Tannen type ZipList = Fix (Tannen Maybe (,)) pattern Nil :: ZipList a pattern Nil = In (Tannen Nothing) infixr 5 ::: pattern (:::) :: a -> ZipList a -> ZipList a pattern a:::as = In (Tannen (Just (as, a))) }}} works fine for the `Nil` pattern synonym (it remains implicitly bidirectional) {{{#!hs newtype ZipList a = ZL (Fix (Tannen Maybe (,)) a) pattern Nil :: ZipList a pattern Nil = ZL (In (Tannen Nothing)) }}} but `(:::)` needs to be explicitly bidirectional {{{#!hs infixr 5 ::: pattern (:::) :: a -> ZipList a -> ZipList a pattern a:::as <- ZL (In (Tannen (Just (ZL -> as, a)))) where a:::ZL as = ZL (In (Tannen (Just (as, a)))) }}} ---- I would like to write it as {{{#!hs pattern (:::) :: a -> ZipList a -> ZipList a pattern a:::ZL as = ZL (In (Tannen (Just (as, a)))) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13672 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13672: Pattern match on LHS of pattern synonym declaration -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: (none) Type: feature request | Status: closed Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: duplicate | Keywords: | PatternSynonyms Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12203 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by RyanGlScott): * status: new => closed * resolution: => duplicate * related: => #12203 Comment: I'm closing this as a duplicate of #12203, since that ticket asks for the same thing (albeit with a different motivating example). I'll add this example to #12203 for posterity's sake. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13672#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC