Created
January 27, 2017 21:03
-
-
Save bgamari/8c5e8a757ecf38c12f015b0f6dc2ef31 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[1 of 1] Compiling Hi ( Hi.hs, Hi.o ) | |
Tc2 (src) | |
Tc3 | |
txExtendKindEnv [] | |
txExtendKindEnv [] | |
kcTyClGroup | |
module Hi | |
data S (p_aCn :: forall k_aqE. k_aqE -> Type) = S | |
txExtendKindEnv [(S, APromotionErr TyConPE)] | |
env2 [] | |
env2 [(k_aqE, Type variable ‘k_aqE’ = k_aqE[sk:1])] | |
lk1 k_aqE | |
u_tys | |
tclvl 1 | |
k_aCp[tau:1] ~ * | |
arising from a type equality k_aCp[tau:1] ~ * | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from k_aCp[tau:1] ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from k_aCp[tau:1] ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
writeMetaTyVar k_aCp[tau:1] := * | |
u_tys yields no coercion | |
checkExpectedKind | |
k_aCp[tau:1] | |
* | |
<*>_N | |
lk1 Type | |
tcTyVar2b | |
Type :: * | |
* | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality * ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a type equality * ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
checkExpectedKind | |
* | |
* | |
<*>_N | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality * ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a type equality * ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
checkExpectedKind | |
* | |
* | |
<*>_N | |
tcExplicitTKBndrs | |
Hs vars: [k_aqE] | |
tvs: k_aqE[sk:1] | |
env2 [(p_aCn, Type variable ‘p_aCn’ = p_aCn[sk:1])] | |
solveEqualities { wanted = WC {} | |
newTcEvBinds unique = aCq | |
solveWanteds { WC {} | |
solveSimpleWanteds { {} | |
solveSimpleWanteds end } | |
iterations = 1 | |
residual = WC {} | |
solveWanteds middle | |
simples1 = {} | |
simples2 = {} | |
solveWanteds } | |
final wc = WC {} | |
current evbinds = {} | |
End solveEqualities } | |
reportAllUnsolved { | |
newTcEvBinds unique = aCr | |
reportAllUnsolved } | |
kcTyClGroup: initial kinds | |
S :: (forall k. k_aqE[sk:1] -> *) -> * | |
(S, APromotionErr RecDataConPE) | |
txExtendKindEnv [(S, ATcTyCon S), (S, APromotionErr RecDataConPE)] | |
env2 [(p_aCn, Type variable ‘p_aCn’ = p_aCn[sk:1])] | |
env2 [] | |
solveEqualities { wanted = WC {} | |
newTcEvBinds unique = aCs | |
solveWanteds { WC {} | |
solveSimpleWanteds { {} | |
solveSimpleWanteds end } | |
iterations = 1 | |
residual = WC {} | |
solveWanteds middle | |
simples1 = {} | |
simples2 = {} | |
solveWanteds } | |
final wc = WC {} | |
current evbinds = {} | |
End solveEqualities } | |
reportAllUnsolved { | |
newTcEvBinds unique = aCt | |
reportAllUnsolved } | |
quantifyZonkedTyVars | |
DV {dv_kvs = [] dv_tvs = []} | |
[] | |
quantifyTyVars | |
globals: [] | |
nondep: [] | |
dep: [] | |
dep_kvs' [] | |
nondep_tvs' [] | |
Generalise kind | |
S | |
[p_aCn[sk:1]] | |
[] | |
[p_aCn[sk:1]] | |
* | |
[p_aCn] | |
* | |
[p_aCn[sk:1]] | |
[p_aCn[sk:1]] | |
kcTyClGroup result S :: (forall k. k -> *) -> * | |
tcTyAndCl generalized kinds (S, [p_aCn], *) | |
txExtendKindEnv [(S, ATcTyCon S)] | |
tcTyAndCl-x data S (p_aCn :: forall k_aqE. k_aqE -> Type) = S | |
env2 [(p_aCn, Type variable ‘p_aCn’ = p_aCn[sk:1])] | |
solveEqualities { wanted = WC {} | |
newTcEvBinds unique = aCv | |
solveWanteds { WC {} | |
solveSimpleWanteds { {} | |
solveSimpleWanteds end } | |
iterations = 1 | |
residual = WC {} | |
solveWanteds middle | |
simples1 = {} | |
simples2 = {} | |
solveWanteds } | |
final wc = WC {} | |
current evbinds = {} | |
End solveEqualities } | |
reportAllUnsolved { | |
newTcEvBinds unique = aCw | |
reportAllUnsolved } | |
tcConDecl 1 S | |
env2 [] | |
tcConDecl S tvs: [] | |
lookupCF | |
S | |
Nothing | |
[] | |
tcExplicitTKBndrs | |
Hs vars: [] | |
tvs: | |
tcImplicitTKBndrs | |
[] | |
[] | |
solveEqualities { wanted = WC {} | |
newTcEvBinds unique = aCx | |
solveWanteds { WC {} | |
solveSimpleWanteds { {} | |
solveSimpleWanteds end } | |
iterations = 1 | |
residual = WC {} | |
solveWanteds middle | |
simples1 = {} | |
simples2 = {} | |
solveWanteds } | |
final wc = WC {} | |
current evbinds = {} | |
End solveEqualities } | |
reportAllUnsolved { | |
newTcEvBinds unique = aCy | |
reportAllUnsolved } | |
quantifyZonkedTyVars | |
DV {dv_kvs = [] dv_tvs = []} | |
[aCn :-> p_aCn] | |
quantifyTyVars | |
globals: [aCn :-> p_aCn] | |
nondep: [] | |
dep: [] | |
dep_kvs' [] | |
nondep_tvs' [] | |
tcConDecl 2 | |
S | |
[] | |
tcConDecl 2 S | |
tcDataDefn | |
S | |
[p_aCn] | |
[] | |
Starting synonym cycle check [S] | |
Done synonym cycle check [S] | |
Starting family consistency check [S] | |
Done family consistency [S] | |
Starting validity check [S] | |
Starting validity for tycon S | |
checkValidTyCon | |
S | |
Nothing | |
cvtc1 S | |
cvtc2 S | |
checkValidDataCon | |
S | |
S | |
[p_aCn] | |
S p :: * | |
S p :: * | |
checkValidDataCon 2 forall (p :: forall k. k -> *). S p | |
checkValidType forall (p :: forall k. k -> *). S p :: * | |
check_type | |
forall (p :: forall k. k -> *). S p | |
True | |
Ambiguity check for forall (p :: forall k. k -> *). S p | |
tcSubType_NC | |
the type of the constructor ‘S’ | |
forall (p :: forall k. k -> *). S p | |
forall (p :: forall k. k -> *). S p | |
tc_sub_tc_type (general case) | |
ty_actual = forall (p :: forall k. k -> *). S p | |
ty_expected = forall (p :: forall k. k -> *). S p | |
tcSkolemise | |
tcSkolemise | |
1 | |
expected_ty forall (p :: forall k. k -> *). S p | |
inst tyvars [p_aCD[sk:2]] | |
given [] | |
inst type S p_aCD[sk:2] | |
tc_sub_type_ds | |
ty_actual = forall (p :: forall k. k -> *). S p | |
ty_expected = S p_aCD[sk:2] | |
Instantiating | |
all tyvars? True | |
origin arising from a type equality forall (p :: forall k. k -> *). | |
S p | |
~ | |
forall (p :: forall k. k -> *). S p | |
type forall (p :: forall k. k -> *). S p | |
theta [] | |
leave_bndrs [] | |
with [p_aCE[tau:2]] | |
theta: [] | |
tc_sub_type_ds | |
ty_actual = S p_aCE[tau:2] | |
ty_expected = S p_aCD[sk:2] | |
deeply_instantiate final subst | |
origin: arising from a type equality forall (p :: forall k. | |
k -> *). | |
S p | |
~ | |
forall (p :: forall k. k -> *). S p | |
type: S p_aCE[tau:2] | |
new type: S p_aCE[tau:2] | |
subst: [TCvSubst In scope: InScope {p_aCE} Type env: [] Co env: []] | |
u_tys | |
tclvl 2 | |
S p_aCE[tau:2] ~ S p_aCD[sk:2] | |
arising from a type equality S p_aCE[tau:2] ~ S p_aCD[sk:2] | |
u_tys | |
tclvl 2 | |
p_aCE[tau:2] ~ p_aCD[sk:2] | |
arising from a type equality S p_aCE[tau:2] ~ S p_aCD[sk:2] | |
u_tys | |
tclvl 2 | |
forall k. k -> * ~ forall k. k -> * | |
arising from a kind equality arising from | |
p_aCE[tau:2] ~ p_aCD[sk:2] | |
u_tys yields no coercion | |
writeMetaTyVar p_aCE[tau:2] := p_aCD[sk:2] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
simplifyAmbiguityCheck { | |
type = forall (p :: forall k. k -> *). S p | |
wanted = WC {} | |
newTcEvBinds unique = aCF | |
solveWanteds { WC {} | |
solveSimpleWanteds { {} | |
solveSimpleWanteds end } | |
iterations = 1 | |
residual = WC {} | |
solveWanteds middle | |
simples1 = {} | |
simples2 = {} | |
solveWanteds } | |
final wc = WC {} | |
current evbinds = {} | |
End simplifyAmbiguityCheck } | |
reportUnsolved(ambig) { | |
newTcEvBinds unique = aCG | |
reportUnsolved(ambig) } | |
Done ambiguity check for forall (p :: forall k. k -> *). S p | |
checkValidType done forall (p :: forall k. k -> *). S p :: * | |
Done validity of data con S forall (p :: forall k. k -> *). S p | |
Done validity for tycon S | |
Done validity check [S] | |
tcAddImplicits | |
tycons [S] | |
implicits [Data constructor ‘S’, Identifier ‘Hi.S’] | |
txExtendKindEnv [] | |
env2 [] | |
Adding instances: | |
addFamInsts | |
tcAddImplicits | |
tycons [] | |
implicits [] | |
txExtendKindEnv [] | |
env2 [] | |
kcTyClGroup | |
module Hi | |
type SSyn = (S :: (forall k_aCo. k_aCo -> Type) -> Type) | |
txExtendKindEnv [(SSyn, APromotionErr TyConPE)] | |
env2 [] | |
env2 [(k_aCo, Type variable ‘k_aCo’ = k_aCo[sk:1])] | |
lk1 k_aCo | |
u_tys | |
tclvl 1 | |
k_aCH[tau:1] ~ * | |
arising from a type equality k_aCH[tau:1] ~ * | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from k_aCH[tau:1] ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from k_aCH[tau:1] ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
writeMetaTyVar k_aCH[tau:1] := * | |
u_tys yields no coercion | |
checkExpectedKind | |
k_aCH[tau:1] | |
* | |
<*>_N | |
lk1 Type | |
tcTyVar2b | |
Type :: * | |
* | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality * ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a type equality * ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
checkExpectedKind | |
* | |
* | |
<*>_N | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality * ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a type equality * ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
checkExpectedKind | |
* | |
* | |
<*>_N | |
tcExplicitTKBndrs | |
Hs vars: [k_aCo] | |
tvs: k_aCo[sk:1] | |
lk1 Type | |
tcTyVar2b | |
Type :: * | |
* | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality * ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a type equality * ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
checkExpectedKind | |
* | |
* | |
<*>_N | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality * ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a type equality * ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
checkExpectedKind | |
* | |
* | |
<*>_N | |
solveEqualities { wanted = WC {} | |
newTcEvBinds unique = aCI | |
solveWanteds { WC {} | |
solveSimpleWanteds { {} | |
solveSimpleWanteds end } | |
iterations = 1 | |
residual = WC {} | |
solveWanteds middle | |
simples1 = {} | |
simples2 = {} | |
solveWanteds } | |
final wc = WC {} | |
current evbinds = {} | |
End solveEqualities } | |
reportAllUnsolved { | |
newTcEvBinds unique = aCJ | |
reportAllUnsolved } | |
kcTyClGroup: initial kinds | |
SSyn :: (forall k. k_aCo[sk:1] -> *) -> * | |
txExtendKindEnv [(SSyn, ATcTyCon SSyn)] | |
env2 [] | |
env2 [(k_aCo, Type variable ‘k_aCo’ = k_aCo[sk:1])] | |
lk1 k_aCo | |
u_tys | |
tclvl 1 | |
k_aCK[tau:1] ~ * | |
arising from a type equality k_aCK[tau:1] ~ * | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from k_aCK[tau:1] ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from k_aCK[tau:1] ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
writeMetaTyVar k_aCK[tau:1] := * | |
u_tys yields no coercion | |
checkExpectedKind | |
k_aCK[tau:1] | |
* | |
<*>_N | |
lk1 Type | |
tcTyVar2b | |
Type :: * | |
* | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality * ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a type equality * ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
checkExpectedKind | |
* | |
* | |
<*>_N | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality * ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a type equality * ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
checkExpectedKind | |
* | |
* | |
<*>_N | |
tcExplicitTKBndrs | |
Hs vars: [k_aCo] | |
tvs: k_aCo[sk:1] | |
lk1 Type | |
tcTyVar2b | |
Type :: * | |
* | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality * ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a type equality * ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
checkExpectedKind | |
* | |
* | |
<*>_N | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality * ~ * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a type equality * ~ * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
checkExpectedKind | |
* | |
* | |
<*>_N | |
lk1 S | |
tcTyVar2a | |
S | |
(forall k. k -> *) -> * | |
u_tys | |
tclvl 1 | |
(forall k. k -> *) -> * | |
~ | |
(forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) -> * | |
arising from a type equality (forall k. k -> *) -> * | |
~ | |
(forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) -> * | |
u_tys | |
tclvl 1 | |
forall k. k -> * ~ forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> * | |
arising from a type equality (forall k. k -> *) -> * | |
~ | |
(forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) -> * | |
New coercion hole: aCL | |
utype_defer | |
U(hole:{aCL}, forall k. k -> *, forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *)_N | |
forall k. k -> * | |
forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> * | |
arising from a type equality (forall k. k -> *) -> * | |
~ | |
(forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) -> * | |
In the type ‘(S :: (forall k_aCo. k_aCo -> Type) -> Type)’ | |
In the type declaration for ‘SSyn’ | |
u_tys yields coercion: | |
U(hole:{aCL}, forall k. k -> *, forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *)_N | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality (forall k. k -> *) -> * | |
~ | |
(forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) -> * | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a type equality (forall k. k -> *) -> * | |
~ | |
(forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) -> * | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields coercion: | |
U(hole:{aCL}, forall k. k -> *, forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *)_N | |
-> <*>_N | |
checkExpectedKind | |
(forall k. k -> *) -> * | |
(forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) -> * | |
U(hole:{aCL}, forall k. k -> *, forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *)_N | |
-> <*>_N | |
u_tys | |
tclvl 1 | |
(forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) -> * | |
~ | |
(forall k. k_aCo[sk:1] -> *) -> * | |
arising from a type equality (forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) | |
-> * | |
~ | |
(forall k. k_aCo[sk:1] -> *) -> * | |
u_tys | |
tclvl 1 | |
forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> * | |
~ | |
forall k. k_aCo[sk:1] -> * | |
arising from a type equality (forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) | |
-> * | |
~ | |
(forall k. k_aCo[sk:1] -> *) -> * | |
New coercion hole: aCM | |
utype_defer | |
U(hole:{aCM}, forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *, forall k. k_aCo[sk:1] -> *)_N | |
forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> * | |
forall k. k_aCo[sk:1] -> * | |
arising from a type equality (forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) | |
-> * | |
~ | |
(forall k. k_aCo[sk:1] -> *) -> * | |
In the type ‘(S :: (forall k_aCo. k_aCo -> Type) -> Type)’ | |
In the type declaration for ‘SSyn’ | |
u_tys yields coercion: | |
U(hole:{aCM}, forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *, forall k. k_aCo[sk:1] -> *)_N | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a type equality (forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) | |
-> * | |
~ | |
(forall k. k_aCo[sk:1] -> *) -> * | |
u_tys yields no coercion | |
u_tys yields coercion: | |
U(hole:{aCM}, forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *, forall k. k_aCo[sk:1] -> *)_N | |
-> <*>_N | |
checkExpectedKind | |
(forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) -> * | |
(forall k. k_aCo[sk:1] -> *) -> * | |
U(hole:{aCM}, forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *, forall k. k_aCo[sk:1] -> *)_N | |
-> <*>_N | |
solveEqualities { | |
wanted = WC {wc_simple = | |
[WD] hole{aCL} {0}:: ((forall k. k -> *) :: *) | |
GHC.Prim.~# | |
((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) (CNonCanonical) | |
[WD] hole{aCM} {0}:: ((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) | |
GHC.Prim.~# | |
((forall k. k_aCo[sk:1] -> *) :: *) (CNonCanonical)} | |
newTcEvBinds unique = aCN | |
solveWanteds { | |
WC {wc_simple = | |
[WD] hole{aCL} {0}:: ((forall k. k -> *) :: *) | |
GHC.Prim.~# | |
((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) (CNonCanonical) | |
[WD] hole{aCM} {0}:: ((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) | |
GHC.Prim.~# | |
((forall k. k_aCo[sk:1] -> *) :: *) (CNonCanonical)} | |
solveSimpleWanteds { | |
{[WD] hole{aCL} {0}:: ((forall k. k -> *) :: *) | |
GHC.Prim.~# | |
((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) (CNonCanonical), | |
[WD] hole{aCM} {0}:: ((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) | |
GHC.Prim.~# | |
((forall k. k_aCo[sk:1] -> *) :: *) (CNonCanonical)} | |
----------------------------- | |
Start solver pipeline { | |
work item = [WD] hole{aCL} {0}:: ((forall k. k -> *) :: *) | |
GHC.Prim.~# | |
((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) (CNonCanonical) | |
inerts = {Unsolved goals = 0} | |
rest of worklist = WL {Eqs = [WD] hole{aCM} {0}:: ((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) | |
GHC.Prim.~# | |
((forall k. | |
k_aCo[sk:1] -> *) :: *) (CNonCanonical)} | |
runStage canonicalization { | |
workitem = [WD] hole{aCL} {0}:: ((forall k. k -> *) :: *) | |
GHC.Prim.~# | |
((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) (CNonCanonical) | |
canonicalize (non-canonical) | |
[WD] hole{aCL} {0}:: ((forall k. k -> *) :: *) | |
GHC.Prim.~# | |
((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) (CNonCanonical) | |
canEvNC:eq | |
forall k. k -> * | |
forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> * | |
can_eq_nc | |
False | |
[WD] hole{aCL} {0}:: ((forall k. k -> *) :: *) | |
GHC.Prim.~# | |
((forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) :: *) | |
nominal equality | |
forall k. k -> * | |
forall k. k -> * | |
forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> * | |
forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> * | |
Creating implication for polytype equality | |
[WD] hole{aCL} {0}:: ((forall k. k -> *) :: *) | |
GHC.Prim.~# | |
((forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) :: *) | |
New coercion hole: aCP | |
Emitting new coercion hole | |
{aCP} :: ((k_aCO[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCO[sk:2] -> *) :: *) | |
newTcEvBinds unique = aCQ | |
Filling coercion hole aCL := <forall k. k_aCO[sk:2] -> *>_N | |
end stage canonicalization } | |
Step 1[l:1,d:0] Deferred polytype equality: | |
[WD] hole{aCL} {0}:: ((forall k. k -> *) :: *) | |
GHC.Prim.~# | |
((forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> *) :: *) | |
End solver pipeline (discharged) } | |
----------------------------- | |
Start solver pipeline { | |
work item = [WD] hole{aCM} {0}:: ((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) | |
GHC.Prim.~# | |
((forall k. k_aCo[sk:1] -> *) :: *) (CNonCanonical) | |
inerts = {Unsolved goals = 0} | |
rest of worklist = WL {(Implics omitted)} | |
runStage canonicalization { | |
workitem = [WD] hole{aCM} {0}:: ((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) | |
GHC.Prim.~# | |
((forall k. k_aCo[sk:1] -> *) :: *) (CNonCanonical) | |
canonicalize (non-canonical) | |
[WD] hole{aCM} {0}:: ((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) | |
GHC.Prim.~# | |
((forall k. k_aCo[sk:1] -> *) :: *) (CNonCanonical) | |
canEvNC:eq | |
forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> * | |
forall k. k_aCo[sk:1] -> * | |
can_eq_nc | |
False | |
[WD] hole{aCM} {0}:: ((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) | |
GHC.Prim.~# | |
((forall k. k_aCo[sk:1] -> *) :: *) | |
nominal equality | |
forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> * | |
forall (k :: k_aCK[tau:1]). k_aCo[sk:1] -> * | |
forall k. k_aCo[sk:1] -> * | |
forall k. k_aCo[sk:1] -> * | |
Creating implication for polytype equality | |
[WD] hole{aCM} {0}:: ((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) | |
GHC.Prim.~# | |
((forall k. k_aCo[sk:1] -> *) :: *) | |
New coercion hole: aCS | |
Emitting new coercion hole | |
{aCS} :: ((k_aCR[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCR[sk:2] -> *) :: *) | |
newTcEvBinds unique = aCT | |
Filling coercion hole | |
aCM := <forall (k :: k_aCK[tau:1]). k_aCR[sk:2] -> *>_N | |
end stage canonicalization } | |
Step 2[l:1,d:0] Deferred polytype equality: | |
[WD] hole{aCM} {0}:: ((forall (k :: k_aCK[tau:1]). | |
k_aCo[sk:1] -> *) :: *) | |
GHC.Prim.~# | |
((forall k. k_aCo[sk:1] -> *) :: *) | |
End solver pipeline (discharged) } | |
getUnsolvedInerts | |
tv eqs = {} | |
fun eqs = {} | |
insols = {} | |
others = {} | |
implics = {Implic { | |
TcLevel = 2 | |
Skolems = (k_aCR[sk:2] :: k_aCK[tau:1]) | |
No-eqs = True | |
Status = Unsolved | |
Given = | |
Wanted = | |
WC {wc_simple = | |
[WD] hole{aCS} {0}:: ((k_aCR[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCR[sk:2] -> *) :: *) (CNonCanonical)} | |
Binds = EvBindsVar<aCT> | |
Needed = [] | |
the type k_aCR[sk:2] -> * }, | |
Implic { | |
TcLevel = 2 | |
Skolems = k_aCO[sk:2] | |
No-eqs = True | |
Status = Unsolved | |
Given = | |
Wanted = | |
WC {wc_simple = | |
[WD] hole{aCP} {0}:: ((k_aCO[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCO[sk:2] -> *) :: *) (CNonCanonical)} | |
Binds = EvBindsVar<aCQ> | |
Needed = [] | |
the type k_aCO[sk:2] -> * }} | |
Unflattening | |
{Funeqs = | |
Tv eqs =} | |
Unflattening 1 {} | |
Unflattening 2 {} | |
Unflattening 3 {} | |
Unflattening done {} | |
zonkSimples done: {} | |
solveSimpleWanteds end } | |
iterations = 1 | |
residual = WC {wc_impl = | |
Implic { | |
TcLevel = 2 | |
Skolems = (k_aCR[sk:2] :: k_aCK[tau:1]) | |
No-eqs = True | |
Status = Unsolved | |
Given = | |
Wanted = | |
WC {wc_simple = | |
[WD] hole{aCS} {0}:: ((k_aCR[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCR[sk:2] -> *) :: *) (CNonCanonical)} | |
Binds = EvBindsVar<aCT> | |
Needed = [] | |
the type k_aCR[sk:2] -> * } | |
Implic { | |
TcLevel = 2 | |
Skolems = k_aCO[sk:2] | |
No-eqs = True | |
Status = Unsolved | |
Given = | |
Wanted = | |
WC {wc_simple = | |
[WD] hole{aCP} {0}:: ((k_aCO[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCO[sk:2] -> *) :: *) (CNonCanonical)} | |
Binds = EvBindsVar<aCQ> | |
Needed = [] | |
the type k_aCO[sk:2] -> * }} | |
solveNestedImplications starting { | |
solveImplication { | |
Implic { | |
TcLevel = 2 | |
Skolems = (k_aCR[sk:2] :: k_aCK[tau:1]) | |
No-eqs = True | |
Status = Unsolved | |
Given = | |
Wanted = | |
WC {wc_simple = | |
[WD] hole{aCS} {0}:: ((k_aCR[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCR[sk:2] -> *) :: *) (CNonCanonical)} | |
Binds = EvBindsVar<aCT> | |
Needed = [] | |
the type k_aCR[sk:2] -> * } | |
Inerts {Unsolved goals = 0} | |
solveWanteds { | |
WC {wc_simple = | |
[WD] hole{aCS} {0}:: ((k_aCR[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCR[sk:2] -> *) :: *) (CNonCanonical)} | |
solveSimpleWanteds { | |
{[WD] hole{aCS} {0}:: ((k_aCR[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCR[sk:2] -> *) :: *) (CNonCanonical)} | |
----------------------------- | |
Start solver pipeline { | |
work item = [WD] hole{aCS} {0}:: ((k_aCR[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCR[sk:2] -> *) :: *) (CNonCanonical) | |
inerts = {Unsolved goals = 0} | |
rest of worklist = WL {} | |
runStage canonicalization { | |
workitem = [WD] hole{aCS} {0}:: ((k_aCR[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCR[sk:2] -> *) :: *) (CNonCanonical) | |
canonicalize (non-canonical) | |
[WD] hole{aCS} {0}:: ((k_aCR[sk:2] -> *) :: *) | |
GHC.Prim.~# | |
((k_aCR[sk:2] -> *) :: *) (CNonCanonical) | |
canEvNC:eq | |
k_aCR[sk:2] -> * | |
k_aCR[sk:2] -> * | |
ghc-stage1: panic! (the 'impossible' happened) | |
(GHC version 8.1.20170124 for x86_64-unknown-linux): | |
repSplitAppTy_maybe | |
k_aCR[sk:2] :: k_aCK[tau:1] | |
* :: * | |
Call stack: | |
CallStack (from HasCallStack): | |
prettyCurrentCallStack, called at compiler/utils/Outputable.hs:1166:58 in ghc:Outputable | |
callStackDoc, called at compiler/utils/Outputable.hs:1170:37 in ghc:Outputable | |
pprPanic, called at compiler/types/Type.hs:693:5 in ghc:Type | |
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE RankNTypes #-} | |
{-# LANGUAGE KindSignatures #-} | |
{-# LANGUAGE TypeInType #-} | |
module Hi where | |
import Data.Kind | |
type SSyn = (S :: (forall k. k -> Type) -> Type) | |
data S (p :: forall k. k -> Type) = S | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment