[GHC] #14740: Unboxed tuple allowed in context: ((##)) => ()

GHC ghc-devs at haskell.org
Wed Jan 31 09:54:15 UTC 2018


#14740: Unboxed tuple allowed in context: ((##)) => ()
-------------------------------------+-------------------------------------
        Reporter:  Iceland_jack      |                Owner:  sighingnow
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.5
  (Parser)                           |
      Resolution:                    |             Keywords:  UnboxedTuples
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:  T14740
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D4359
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by sighingnow):

 * testcase:   => T14740
 * differential:   => Phab:D4359


Comment:

 In Phab:D4359, `let x :: ((##)) => (); x = ()` will raise an error:

 {{{
 T14740.hs:5:7:
      Expecting a lifted type, but ‘(# #)’ is unlifted
      In the type signature: x :: ((# #)) => ()
 }}}

 But I'm not sure when `-XConstraintKinds` is enabled, whether the
 declaration `let x :: (()) => (); x = ()` is valid. The documentation of
 `-XConstraintKinds` says that constraints could be:

 > Tuples, all of whose component types have kind Constraint.

 To my limited knowledge, in Haskell2010 empty tuples can't be used as
 context constraints.

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


More information about the ghc-tickets mailing list