[GHC] #15147: Type checker plugin receives Wanteds that are not completely unflattened
GHC
ghc-devs at haskell.org
Tue May 29 20:44:08 UTC 2018
#15147: Type checker plugin receives Wanteds that are not completely unflattened
-------------------------------------+-------------------------------------
Reporter: nfrisby | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone: 8.6.1
Component: Compiler (Type | Version: 8.4.1
checker) | Keywords:
Resolution: | TypeCheckerPlugins
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):
I've looked at why the plugin is seeing flattened givens. It has been
this way for some time.
Currently, when we go "under" an implication constraint we flatten the
Givens; and we only unflatten them when we've finished with that
implication. When calling a plugin, we have Givens from a whole stack of
enclosing implications, and none of them will be unflattened.
See the `inert_fsks` field of `InertSet`; and `TcSMonad.unflattenGivens`
which uses that field to guide unflattening. You can see that
`unflattenGivens` is called by `nestImplicTcS` which goes under an
implication.
It's quite awkward to unflatten them, in fact... even accessing the
unflattening info for the stack of implications would require extra
plumbing.
Humph. How bad would it be just to document the status quo?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15147#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list