Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#13749 closed bug (duplicate)

Panic (initTc: unresolved constraints) on some bad code

Reported by: uranium Owned by:
Priority: normal Milestone:
Component: Compiler Version: 8.0.2
Keywords: Cc:
Operating System: Linux Architecture: Unknown/Multiple
Type of failure: Compile-time crash or panic Test Case:
Blocked By: Blocking:
Related Tickets: #13106 Differential Rev(s):
Wiki Page:


I was just refactoring some code, and partway through, before it was all compiling, I hit the below error. The code's probably just terrible in an interestingly new way; I'm pretty inexperienced at Haskell. I'll attach the file.

Prelude> :r [1 of 1] Compiling Main ( /home/uranium/projects/server/src/Main.hs, interpreted ) ghc: panic! (the 'impossible' happened)

(GHC version 8.0.2 for x86_64-unknown-linux):

initTc: unsolved constraints

WC {wc_insol =

[W] get_aGsK
t_aGsJ[tau:1] (CHoleCan: get)
[W] execState_aGsX
t_aGsW[tau:1] (CHoleCan: execState)
[W] get_aGvL
t_aGvK[tau:1] (CHoleCan: get)
[W] lift_aGvU
t_aGvT[tau:1] (CHoleCan: lift)
[W] put_aGw3
t_aGw2[tau:1] (CHoleCan: put)
[W] cellType_aGwy
t_aGwx[tau:1] (CHoleCan: cellType)
[W] insts_aGwB
t_aGwA[tau:1] (CHoleCan: insts)
[W] ports_aGwE
t_aGwD[tau:1] (CHoleCan: ports)
[W] conns_aGwH
t_aGwG[tau:1] (CHoleCan: conns)
[W] annos_aGwK
t_aGwJ[tau:1] (CHoleCan: annos)
[W] comms_aGwN
t_aGwM[tau:1] (CHoleCan: comms)}

Please report this as a GHC bug:

Attachments (2)

Main.hs (29.7 KB) - added by uranium 2 years ago.
server.cabal (882 bytes) - added by uranium 2 years ago.
Cabal file, in case it helps.

Download all attachments as: .zip

Change History (4)

Changed 2 years ago by uranium

Attachment: Main.hs added

Changed 2 years ago by uranium

Attachment: server.cabal added

Cabal file, in case it helps.

comment:1 Changed 2 years ago by RyanGlScott

Resolution: duplicate
Status: newclosed

Thanks for the bug report. This is a duplicate of #13106, which has been fixed in GHC 8.2.

Note that this panic is usually caused by using identifiers that aren't in-scope (in your case, get, execState, etc.) in just the right way.

comment:2 Changed 2 years ago by uranium


Note: See TracTickets for help on using tickets.