[GHC] #5144: Pattern synonyms

GHC ghc-devs at haskell.org
Thu Aug 22 11:51:57 UTC 2013


#5144: Pattern synonyms
-------------------------------------+------------------------------------
        Reporter:  simonpj           |            Owner:  cactus
            Type:  feature request   |           Status:  new
        Priority:  normal            |        Milestone:  _|_
       Component:  Compiler          |          Version:
      Resolution:                    |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  None/Unknown      |       Difficulty:  Unknown
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:
-------------------------------------+------------------------------------

Comment (by cactus):

 Replying to [comment:23 simonpj]:
 > I suggest we allow the user to control whether a pattern synonym is
 bidirectional or not.  I'm not sure what syntax to use for that.  We want
 to be able to say
 >  * Uni-directional pattern synonym
 >  * Bi-directional pattern synonym
 >  * Bi-directional pattern synonym with explicit user code for the
 reverse direction
 >

 Once a syntax for this is decided, this is trivial to add to my current
 implementation.

 > We have at various times discussed how to allow a module to export a
 data constructor that > can be used as a pattern but not as a constructor
 (in expressions), because the data type is abstract and you should only
 use a smart constructor. With pattern synonyms you can (almost) do that

 What if you could just export `pattern P` (where `P` is the name of the
 data constructor) without having to define `AbsP`? Would that be taking
 things too far?

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




More information about the ghc-tickets mailing list