[GHC] #7021: Tuple (and other exotic predicates) not yet handled in Template Haskell

GHC ghc-devs at haskell.org
Thu Jan 9 08:23:41 UTC 2014


#7021: Tuple (and other exotic predicates) not yet handled in Template Haskell
-------------------------+-------------------------------------------------
        Reporter:        |            Owner:
  goldfire               |           Status:  new
            Type:        |        Milestone:  7.8.1
  feature request        |          Version:  7.5
        Priority:        |         Keywords:  ConstraintKinds
  normal                 |  TemplateHaskell
       Component:        |     Architecture:  Unknown/Multiple
  Template Haskell       |       Difficulty:  Unknown
      Resolution:        |       Blocked By:
Operating System:        |  Related Tickets:
  Unknown/Multiple       |
 Type of failure:        |
  None/Unknown           |
       Test Case:        |
        Blocking:        |
-------------------------+-------------------------------------------------

Comment (by simonpj):

 I rather agree with Richard: make `Pred` and `Type` into synonyms.  That's
 what GHC does internally, and it works pretty well.

 However that would be a bit of a bump: people's programs would break.  A
 possible half-way house would be to have
 {{{
 data Pred = TypeP Type
   | ClassP Name [Type]
   | EqualP Type Type
 }}}
 and then deprecated `ClassP` and `EqualP` in favour of the equivalents in
 `Type`.  Once that has settled down, making `Pred` into a synonym would
 still be a breaking change, but a very routine one to absorb.

 Or it might be better to do it all at once. I'm not sure, and would
 welcome opinions.

 Simon

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


More information about the ghc-tickets mailing list