[GHC] #13594: Typechecker behavior w.r.t. BangPatterns and nested foralls has changed in 8.2

GHC ghc-devs at haskell.org
Fri Jul 28 12:24:23 UTC 2017


#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


More information about the ghc-tickets mailing list