
#10079: Coercible solver regression: Couldn't match rep of () with Const () b -------------------------------------+------------------------------------- Reporter: glguy | Owner: goldfire Type: bug | Status: new Priority: highest | Milestone: 7.10.1 Component: Compiler (Type | Version: 7.10.1-rc1 checker) | Keywords: Resolution: | Architecture: Operating System: Unknown/Multiple | Unknown/Multiple Type of failure: GHC rejects | Test Case: valid program | Blocking: Blocked By: | Differential Revisions: Related Tickets: | -------------------------------------+------------------------------------- Comment (by goldfire): Yep. Fixed. Will validate and push later today. {{{ try_decompose_repr_app :: CtEvidence -> TcType -> TcType -> TcS (StopOrContinue Ct) -- Preconditions: like try_decompose_app, but also -- ev has a representational try_decompose_repr_app ev ty1 ty2 | ty1 `eqType` ty2 -- See Note [AppTy reflexivity check] = canEqReflexive ev ReprEq ty1 | AppTy {} <- ty1 = canEqFailure ev ReprEq ty1 ty2 | AppTy {} <- ty2 = canEqFailure ev ReprEq ty1 ty2 | otherwise -- flattening in can_eq_wanted_app exposed some TyConApps! = ASSERT2( isJust (tcSplitTyConApp_maybe ty1) || isJust (tcSplitTyConApp_maybe ty2) , ppr ty1 $$ ppr ty2 ) -- If this assertion fails, we may fall -- into an infinite loop canEqNC ev ReprEq ty1 ty2 }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10079#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler