
#14048: Data instances of kind Constraint -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12369 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): Not to distract too much from the actual ticket (and perhaps this should be its own ticket), but it is rather disturbing that, as you briefly mentioned, `data Foo1 :: Constraint`/`data family Foo2 :: Constraint` is accepted today. Ultimately, it comes down to the fact that `isLiftedTypeKind` returns `True` for both `Type` //and// `Constraint`—see #14869—so GHC doesn't reject when the return kind is `Constraint`. I suppose that could be fixable by inserting an additional check for `not (isConstraintKind k)`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14048#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler