[GHC] #14628: Panic (No skolem Info) in GHCi
GHC
ghc-devs at haskell.org
Wed Jan 3 00:18:52 UTC 2018
#14628: Panic (No skolem Info) in GHCi
-------------------------------------+-------------------------------------
Reporter: AndreasK | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: GHCi | Version: 8.2.2
Resolution: | Keywords: debugger
Operating System: Unknown/Multiple | Architecture:
Type of failure: Compile-time | Unknown/Multiple
crash or panic | Test Case:
Blocked By: | Blocking:
Related Tickets: #13393 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by simonpj):
I think it's unrelated to the fix for #13393.
As you point out, this is debugger-land, and we have these `RuntimeUnk`
skolems, which stand for as-yet-unknown types in the debugger. In this
case `_result` has type
{{{
_result :: StateT Int m_I4K0[rt] ()
}}}
but the debugger can't figure out (by looking at the heap) what this
`m_I4K0` type is. So when typechecking an expression involving `_result`
we should complain if this `m` gets unified with anything. And it is when
you try to evalute
{{{
snd $ runStateT _result 0
}}}
We get a wanted constraint
{{{
[WD] hole{a4SP} :: (m_I4K0[rt] :: (* -> *)) ~# ((,) a_a4SI[tau:1] :: (*
-> *))
}}}
The trouble is that, in reporting the error, `TcErrors.getSkolemInfo` of
course cannot find an enclosing implication constraint binding that `m`.
What we should do instead is:
* Make `getSkolemInfo` return a `SkolemInfo` rether than an `Implic`
* If `getSkolemInfo` gets a `RuntimeUnk`, just return a new data
constructor in `SkolemInfo`, perhpas `RuntimeUnkSkol`.
* In `TcErrors.pprSkols` print something sensible for a `RuntimeUnkSkol`
It'd be most helpful to look at the top-level type envt, and display some
of the in-scope Ids that have that variale free in their types. The
`relevantBindings` function might be good for finding such bindings.
Any volunteers?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14628#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list