
#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