Skip to content
  • Simon Peyton Jones's avatar
    Fix constraint handling for lazy patterns · 36d207aa
    Simon Peyton Jones authored
    Lazy patterns are quite tricky!  Consider
    	f ~(C x) = 3
    Can the Num constraint from the 3 be discharged by a Num dictionary
    bound by the pattern?  Definitely not!  
    
    See Note [Hopping the LIE in lazy patterns] in TcPat
    
    The type checker wasn't ensuring this, and that was causing all
    manner of strange things to happen.  It actually manifested as a
    strictness bug reported by Sven Panne.
    
    I've added his test case as tcrun040.
    36d207aa