decoding GADTs gives internal error: stg_ap_v_ret
May be related to #4987 (closed), but this time I have a reproducible case.
So far I found out that the %INFO_TYPE(%STD_INFO(info))
in stg_ap_v is 4 (==CONSTR_2_0) just before barfing.
The unsafe cast is just to generalize to the return type,
but seem to be crucial. When I make TypedPair unparametrized
or remove the TPInt constructor (but remaining a GADT), the crash goes away.
The problem does not happen with GHCi (with this testcase), but I have seen the same crash in GHCi too with a more involved code example.
I compiled vanilla: ghc internal-error.lhs; ./internal-error
I did not test with older compilers.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.7 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |