
#15872: Odd pretty printing of equality constraint in kind ('GHC.Types.Eq# <>) -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.2 Resolution: | Keywords: TypeInType Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: Poor/confusing | Test Case: error message | typecheck/should_fail/T12102 Blocked By: | Blocking: Related Tickets: #12102, #13933 | Differential Rev(s): Phab:D5397 Wiki Page: | -------------------------------------+------------------------------------- Changes (by RyanGlScott): * status: closed => new * resolution: fixed => * milestone: 8.8.1 => Comment: Commit [https://gitlab.haskell.org/ghc/ghc/commit/6cce36f83aec33d33545e0ef2135894d22... 6cce36f83aec33d33545e0ef2135894d22dff5ca] (`Add AnonArgFlag to FunTy`) added back the ability to have equality constraints in kinds. Unfortunately, the issues in the original description persist: {{{ GHCi, version 8.9.20190224: https://www.haskell.org/ghc/ :? for help Loaded GHCi configuration from /home/rgscott/.ghci [1 of 1] Compiling Main ( Bug.hs, interpreted ) Ok, one module loaded. λ> :i MkFun type role Fun nominal representational representational data Fun (a1 :: a ~ 'OP) b c where MkFun :: b -> c -> Fun 'GHC.Types.Eq# <> b c -- Defined at Bug.hs:11:3 λ> :k Fun Fun :: (a ~ 'OP) -> * -> * -> * }}} In fact, the situation is arguably //worse// now, since `:k Fun` reports the entirely bogus kind `Fun :: (a ~ 'OP) -> * -> * -> *`. (See also #12102.) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15872#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler