[GHC] #4361: Typechecker regression
GHC
cvs-ghc at haskell.org
Wed Jun 20 18:44:59 CEST 2012
#4361: Typechecker regression
---------------------------------------------+------------------------------
Reporter: igloo | Owner: simonpj
Type: bug | Status: closed
Priority: high | Milestone: 7.0.1
Component: Compiler (Type checker) | Version: 7.1
Resolution: fixed | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: None/Unknown | Difficulty: Unknown
Testcase: typecheck/should_compile/T4361 | Blockedby:
Blocking: | Related:
---------------------------------------------+------------------------------
Changes (by simonpj):
* difficulty: => Unknown
Comment:
For completeness, `Note [Avoid unecessary constraint simplification]` is
this:
{{{
Note [Avoid unecessary constraint simplification]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When inferring the type of a let-binding, with simplifyInfer,
try to avoid unnecessarily simplifying class constraints.
Doing so aids sharing, but it also helps with delicate
situations like
instance C t => C [t] where ..
f :: C [t] => ....
f x = let g y = ...(constraint C [t])...
in ...
When inferring a type for 'g', we don't want to apply the
instance decl, because then we can't satisfy (C t). So we
just notice that g isn't quantified over 't' and partition
the contraints before simplifying.
This only half-works, but then let-generalisation only half-works.
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4361#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list