#7485: Tuple constraints not properly kinded
-------------------------------+--------------------------------------------
  Reporter:  goldfire          |          Owner:                  
      Type:  bug               |         Status:  closed          
  Priority:  normal            |      Milestone:                  
 Component:  Compiler          |        Version:  7.7             
Resolution:  invalid           |       Keywords:  ConstraintKinds 
        Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown      |     Difficulty:  Unknown         
  Testcase:                    |      Blockedby:                  
  Blocking:                    |        Related:                  
-------------------------------+--------------------------------------------
Changes (by simonpj):

  * status:  new => closed
  * difficulty:  => Unknown
  * resolution:  => invalid


Comment:

 I think that is as expected. In the source language at least, `*` and
 `Constraint` are distict kinds.  So `(,)` has to have a particular kind,
 and it's `* -> * -> *`.  However the distfix syntax version `(a,b)` has
 special treatment so that we can use the same syntax for type tuples and
 constraint tuples.

 It's not dissimilar to `(->)`. You can write `Int# -> Int`, but `(->)` as
 a separate type constructor has the more restrictive kind `(->) :: * -> *
 -> *`.

 I'm open to improvements.  And/or suggested documentation.

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

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to