[GHC] #9211: Untouchable type variable (regression from 7.6)
GHC
ghc-devs at haskell.org
Wed Jun 18 08:31:08 UTC 2014
#9211: Untouchable type variable (regression from 7.6)
-------------------------------------+------------------------------------
Reporter: simonpj | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.8.2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Difficulty: Unknown
Test Case: | Blocked By:
Blocking: | Related Tickets:
-------------------------------------+------------------------------------
Changes (by simonpj):
* cc: dimitris@… (added)
Comment:
Harumph.
Suppose we have an implication constraint of this form:
{{{
forall a b c. (b ~ ty, ...) => ...blah...
}}}
where the equality constraint in the "givens" is of form `b ~ ty`, where
`b` is one of the variables quantified by the `forall`.
Then, as far as I can see, no loss of principality arises if we float
constraints from `...blah...`, outside the implication. (Obviously, only
ones that do not mention `a,b,c`.) (NB: floating the constraint out is
equivalent to allowing a unification of an untouchable underneath.)
Reason: such an equality amounts to a let-binding; indeed that is exactly
how Oleg wants to use it.
This would amount to an ad-hoc but easily-specified extension of GHC's
already-ad-hoc rule for floating constraints out of implications, and
hence perhaps no big deal. Certainly it's easy to implement.
I'm adding Dimitrios in cc. What do you think?
Simon
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9211#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list