
#13594: Typechecker behavior w.r.t. BangPatterns and nested foralls has changed in 8.2 -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: bgamari Type: bug | Status: closed Priority: high | Milestone: 8.2.1 Component: Compiler (Type | Version: 8.2.1-rc2 checker) | Keywords: BangPatterns, Resolution: fixed | RankNTypes Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D3661 Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): Hmm. In `Match.hs` this patch did {{{ - ; let upats = map (unLoc . decideBangHood dflags) pats + ; let add_bang + | FunRhs {mc_strictness=SrcStrict} <- ctx + = pprTrace "addBang" empty addBang + | otherwise + = decideBangHood dflags + upats = map (unLoc . add_bang) pats }}} I don't think that's right. I claim the if `mc_strictness` is True then `pats` is empty, so this change is a no-op. Do you agree? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13594#comment:22 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler