
#14556: Core Lint error: Ill-kinded result in coercion -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.3 Resolution: | Keywords: TypeInType Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #14554 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): I think this is another example of the bugs surrounding "flattened types have flattened kinds". What is happening is this. In the RHS of `zero` we get a constraint {{{ [W} (alpha :: TYPE r) ~ TyRep X a -> (IT a |> ax_IK) where ax_IK :: IK X ~ Type -- Just an axiom for IK }}} which should strainghtforwardly unify. But before we do that we flatten `(IT a |> ax_IK)`, but alas we get just {{{ (fuv :: IK X) where fuv = IT a -- CFunEqCan }}} The cast has disappeared. This happens in `TcFlatten`: {{{ flatten_one (CastTy ty g) }}} I'm pretty sure it's just another manifestation of our existing set of bugs around flattening (Trac #12919). Richard has a mostly- finished patch that cures this --- it'd be great to get it finished! -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14556#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler