[GHC] #8583: Associated pattern synonyms

GHC ghc-devs at haskell.org
Sun Dec 1 04:41:08 UTC 2013


#8583: Associated pattern synonyms
------------------------------------+-------------------------------------
       Reporter:  cactus            |             Owner:
           Type:  bug               |            Status:  new
       Priority:  normal            |         Milestone:
      Component:  Compiler          |           Version:
       Keywords:                    |  Operating System:  Unknown/Multiple
   Architecture:  Unknown/Multiple  |   Type of failure:  None/Unknown
     Difficulty:  Unknown           |         Test Case:
     Blocked By:  5144              |          Blocking:
Related Tickets:                    |
------------------------------------+-------------------------------------
 The PatternSynonyms wiki page has a section on (typeclass-)associated
 pattern synonyms:

 {{{
 class ListLike l where
       pattern Nil :: l a
       pattern Cons :: a -> l a -> a
       isNil :: l a -> Bool
       isNil Nil = True
       isNil (Cons _ _) = False
       append :: l a -> l a -> l a

    instance ListLike [] where
       pattern Nil = []
       pattern Cons x xs = x:xs
       append = (++)

    headOf :: (ListLike l) => l a -> Maybe a
    headOf Nil = Nothing
    headOf (Cons x _) = Just x
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8583>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list