[GHC] #15846: Re-examine mkResidualConstraints
GHC
ghc-devs at haskell.org
Fri Nov 2 15:57:04 UTC 2018
#15846: Re-examine mkResidualConstraints
-------------------------------------+-------------------------------------
Reporter: goldfire | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.6.1
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
Simon and I spent some time debating `TcSimplify.mkResidualConstraints`.
Here is what we learned:
* The current code handles covars at the top level only. At one point, we
were worried about covars in nested implications. But I conjecture this
can't happen, because these would necessarily be instances of skolem-
escape, prevented elsewhere. (Why skolem-escape? Because the covar would
mention local skolems, and yet appears in the type of the variable(s)
we're trying to infer.)
* We think that any covars that come through `mkResidualConstraints` will
''never'' be solved. That's because there can't be given equality from an
outer context -- if there were, we'd be in the "let should not be
generalized" case and wouldn't be in `simplifyInfer`.
* The `promoteTyVarSet` call in `mkResidualConstraints` appears to be
entirely redundant, because anything that gets caught there should also
have been caught in `decideMonoTyVars`.
* So the only time that we should do work in `mkResidualConstraints` is
when we have deferred type errors. Perhaps with that insight, it can be
simplified.
This ticket is to track our understanding of this function, settle on a
way to improve it, and then execute that change. At the minimum, we should
figure out whether that `promoteTyVarSet` is necessary.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15846>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list