[GHC] #14584: Core Lint error
GHC
ghc-devs at haskell.org
Wed Dec 20 10:20:48 UTC 2017
#14584: Core Lint error
-------------------------------------+-------------------------------------
Reporter: Iceland_jack | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.1
Resolution: | Keywords: TypeInType,
| DeferredTypeErrors
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by simonpj):
> What if co2 ends up being filled in with a coercion that mentions x?
Excellent question! But even a more complicated floating isn't enough.
Suppose `co2` ''is'' actually solved. Then its binding will live in the
inner implication; so we then can't float `co1`. And if that solved
binding did mention `x`, then we should presumably not float `co1`.
Yikes. This works today because: if `co2` is solved, when we zonk `co1`
we'll see all the free vars of `co1` (because of the update in place
stuff).
In truth, if coercions generated bindings in the implication, we'd have to
float them too, assuming none of them mention the skolemised variables.
Bottom line: it seems delicate, but yes perhaps doing transitive capture
would nail it.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14584#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list