#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): Here we go: {{{ dmdAnal:Case2 scrut ds_dBX{v} [lid] scrut_ty DmdType {dBX-><S,1*U>} alt_tys [DmdType {aqq-><S,1*U(U)>}, DmdType {aqq-><L,U>}] alt_ty DmdType {aqq-><L,U(U)>} res_ty DmdType {aqq-><L,U(U)> dBX-><S,1*U>} }}} If I read this correct, in human terms, this tell me “The first case branch will use `aqq` (=`n`) at most once, and will take the box apart and use what’s inside, while do not know anything about how the right case branch uses `n`. The scrutinee does not talk about `n` at all. Therefore, the whole expression uses `n` in an unknown number of times, and also uses what’s inside”. This sounds wrong to me (but I’m not firm on reading demand signatures yet). -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8569#comment:5> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler