
#10079: Coercible solver regression: Couldn't match rep of () with Const () b -------------------------------------+------------------------------------- Reporter: glguy | Owner: goldfire Type: bug | Status: merge 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: indexed- valid program | types/should_compile/T10079 Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by goldfire): Replying to [comment:9 simonpj]:
I'm not sure this is right yet.
Of course you're right. The difference in treatment between wanted/deriveds (where we flatten) and givens (where we don't) here is inherited from before my patch. Do you know why this was the case? Regardless, it does seem flattening is always necessary in the representational case. New proposal: `try_decompose_repr_app` will recur to `canEqNC` iff 1. Either side is headed by a newtype, OR 2. Neither side is an `AppTy`. Should be able to tweak this today. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10079#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler