
#8569: ASSERT in testcase type-rep, only in some ways: -------------------------------------+------------------------------------ Reporter: nomeata | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Test Suite | Version: 7.7 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: None/Unknown | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------ Comment (by nomeata): This might be related to Note [Don't optimise UProd(Used) to Used]. There it says
But with the joint demand of
doesn't convey any clue that there is a product involved, and so the worthSplittingFun will not fire. (We'd need to use the type as well to make it fire.)
so all this trouble of non-canonical demands just to give some bit of information to `worthSplittingFun`, which can probably get this information from `tryWW`, which knows whether the type really is a product type (and not a type variable that was a product type in one branch of a case of the body)? Or are there likely other reasons to keep `UProd(Used)` instead of `UProd`? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8569#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler