[GHC] #10928: Refine pattern synonym signatures

GHC ghc-devs at haskell.org
Tue Oct 6 14:35:04 UTC 2015


#10928: Refine pattern synonym signatures
-------------------------------------+-------------------------------------
        Reporter:  mpickering        |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.0.1
       Component:  Compiler          |              Version:  7.10.2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  Other             |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
-------------------------------------+-------------------------------------

Comment (by goldfire):

 I like the idea of using a different operator to flag required vs provided
 here. I'm far from convinced about `*>`, not in the least because that
 steals the type operator.

 I do agree with Reid about the unfortunate fact that `C a => D a => T`
 already has a meaning. But we're not stealing syntax here, because the
 `blah` in `pattern P :: blah` is '''not''' a type. It's a pattern type
 signature, which, in its current syntax, looks rather like a type, but
 it's a different beast, with its own strange rules. (Rather like the fact
 that the `blah` in `data X where Y :: blah` is also not a type. Note that
 `C a => D a => a -> X` doesn't work there, but that record and bang syntax
 does.) So I'm not terribly bothered by the double `=>` in this regard, but
 only a little bothered.

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


More information about the ghc-tickets mailing list