Skip to content

Instantly share code, notes, and snippets.

@bgamari
Created January 28, 2017 04:45
Show Gist options
  • Save bgamari/71733f8c43f43fe66d51f9e59e153783 to your computer and use it in GitHub Desktop.
Save bgamari/71733f8c43f43fe66d51f9e59e153783 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
[1 of 1] Compiling T11480b ( T11480b.hs, T11480b.o )
lookupCF
Nat
Just [runNat{runNat}]
[rKl :-> [runNat{runNat}], rKy :-> [], rKC :-> [getY{getY}]]
lookupCF
Y
Just [getY{getY}]
[rKl :-> [runNat{runNat}], rKy :-> [], rKC :-> [getY{getY}]]
Tc2 (src)
Tc3
txExtendKindEnv []
txExtendKindEnv []
kcTyClGroup
module T11480b
newtype Y (p_aLB :: i_aLz
-> j_aLA -> *) (a_aLC :: j_aLA) (b_aLD :: i_aLz)
= Y {getY :: p_aLB b_aLD a_aLC}
txExtendKindEnv [(Y, APromotionErr TyConPE)]
env2
[(i_aLz, Type variable ‘i_aLz’ = i_aLz[sk:1]),
(j_aLA, Type variable ‘j_aLA’ = j_aLA[sk:1])]
lk1 i_aLz
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 j_aLA
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 *
tcTyVar2b
* :: *
*
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
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
env2 [(p_aLB, Type variable ‘p_aLB’ = p_aLB[sk:1])]
lk1 j_aLA
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
env2 [(a_aLC, Type variable ‘a_aLC’ = a_aLC[sk:1])]
lk1 i_aLz
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
env2 [(b_aLD, Type variable ‘b_aLD’ = b_aLD[sk:1])]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aPr
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aPs
reportAllUnsolved }
kcTyClGroup: initial kinds
Y :: forall j i.
(i_aLz[sk:1] -> j_aLA[sk:1] -> *)
-> j_aLA[sk:1] -> i_aLz[sk:1] -> *
(Y, APromotionErr RecDataConPE)
txExtendKindEnv [(Y, ATcTyCon Y), (Y, APromotionErr RecDataConPE)]
env2
[(i_aLz, Type variable ‘i_aLz’ = i_aLz[sk:1]),
(j_aLA, Type variable ‘j_aLA’ = j_aLA[sk:1]),
(p_aLB, Type variable ‘p_aLB’ = p_aLB[sk:1]),
(a_aLC, Type variable ‘a_aLC’ = a_aLC[sk:1]),
(b_aLD, Type variable ‘b_aLD’ = b_aLD[sk:1])]
env2 []
lk1 p_aLB
tc_infer_args (vis)
[anon] i_aLz[sk:1]
b_aLD
lk1 b_aLD
u_tys
tclvl 1
i_aLz[sk:1] ~ i_aLz[sk:1]
arising from a type equality i_aLz[sk:1] ~ i_aLz[sk:1]
u_tys yields no coercion
checkExpectedKind
i_aLz[sk:1]
i_aLz[sk:1]
<i_aLz[sk:1]>_N
tc_infer_args (vis)
[anon] j_aLA[sk:1]
a_aLC
lk1 a_aLC
u_tys
tclvl 1
j_aLA[sk:1] ~ j_aLA[sk:1]
arising from a type equality j_aLA[sk:1] ~ j_aLA[sk:1]
u_tys yields no coercion
checkExpectedKind
j_aLA[sk:1]
j_aLA[sk:1]
<j_aLA[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aPt[tau:1]
arising from a type equality * ~ TYPE t_aPt[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aPt[tau:1]
arising from a type equality * ~ TYPE t_aPt[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aPt[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aPt[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aPt[tau:1]
<*>_N
solveEqualities { wanted = WC {}
newTcEvBinds unique = aPu
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aPv
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [] dv_tvs = []}
[]
quantifyTyVars
globals: []
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
Generalise kind
Y
[@j_aLA[sk:1], @i_aLz[sk:1], p_aLB[sk:1], a_aLC[sk:1], b_aLD[sk:1]]
[]
[@j_aLA[sk:1], @i_aLz[sk:1], p_aLB[sk:1], a_aLC[sk:1], b_aLD[sk:1]]
*
[@j_aLA, @i_aLz, p_aLB, a_aLC, b_aLD]
*
[j_aLA[sk:1], i_aLz[sk:1], p_aLB[sk:1], a_aLC[sk:1], b_aLD[sk:1]]
[i_aLz[sk:1], j_aLA[sk:1], p_aLB[sk:1], a_aLC[sk:1], b_aLD[sk:1]]
kcTyClGroup result Y :: forall j i. (i -> j -> *) -> j -> i -> *
tcTyAndCl generalized kinds
(Y, [@j_aLA, @i_aLz, p_aLB, a_aLC, b_aLD], *)
txExtendKindEnv [(Y, ATcTyCon Y)]
tcTyAndCl-x
newtype Y (p_aLB :: i_aLz
-> j_aLA -> *) (a_aLC :: j_aLA) (b_aLD :: i_aLz)
= Y {getY :: p_aLB b_aLD a_aLC}
env2
[(i_aLz, Type variable ‘i_aLz’ = i_aLz[sk:1]),
(j_aLA, Type variable ‘j_aLA’ = j_aLA[sk:1]),
(p_aLB, Type variable ‘p_aLB’ = p_aLB[sk:1]),
(a_aLC, Type variable ‘a_aLC’ = a_aLC[sk:1]),
(b_aLD, Type variable ‘b_aLD’ = b_aLD[sk:1])]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aPx
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aPy
reportAllUnsolved }
tcConDecl 1 Y
env2 []
tcConDecl Y tvs: []
tcConArg 1 p_aLB b_aLD a_aLC
lk1 p_aLB
tc_infer_args (vis)
[anon] i_aLz[sk:1]
b_aLD
lk1 b_aLD
u_tys
tclvl 1
i_aLz[sk:1] ~ i_aLz[sk:1]
arising from a type equality i_aLz[sk:1] ~ i_aLz[sk:1]
u_tys yields no coercion
checkExpectedKind
i_aLz[sk:1]
i_aLz[sk:1]
<i_aLz[sk:1]>_N
tc_infer_args (vis)
[anon] j_aLA[sk:1]
a_aLC
lk1 a_aLC
u_tys
tclvl 1
j_aLA[sk:1] ~ j_aLA[sk:1]
arising from a type equality j_aLA[sk:1] ~ j_aLA[sk:1]
u_tys yields no coercion
checkExpectedKind
j_aLA[sk:1]
j_aLA[sk:1]
<j_aLA[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aPz[tau:1]
arising from a type equality * ~ TYPE t_aPz[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aPz[tau:1]
arising from a type equality * ~ TYPE t_aPz[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aPz[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aPz[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aPz[tau:1]
<*>_N
tcConArg 2 p_aLB b_aLD a_aLC
lookupCF
Y
Just [getY{getY}]
[rKl :-> [runNat{runNat}], rKy :-> [], rKC :-> [getY{getY}]]
tcExplicitTKBndrs
Hs vars: []
tvs:
tcImplicitTKBndrs
[]
[]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aPA
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aPB
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aLz :-> i_aLz[sk:1], aLA :-> j_aLA[sk:1]]
dv_tvs = [aLD :-> b_aLD[sk:1], aLB :-> p_aLB[sk:1],
aLC :-> a_aLC[sk:1]]}
[aLz :-> i_aLz, aLA :-> j_aLA, aLB :-> p_aLB, aLC :-> a_aLC,
aLD :-> b_aLD]
quantifyTyVars
globals: [aLz :-> i_aLz, aLA :-> j_aLA, aLB :-> p_aLB,
aLC :-> a_aLC, aLD :-> b_aLD]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
tcConDecl 2
Y
[getY{getY}]
tcConDecl 2 Y
tcDataDefn
Y
[@j_aLA, @i_aLz, p_aLB, a_aLC, b_aLD]
[]
Starting synonym cycle check [Y]
Done synonym cycle check [Y]
Starting family consistency check [Y]
Done family consistency [Y]
Starting validity check [Y]
Starting validity for tycon Y
checkValidTyCon
Y
Nothing
cvtc1 Y
cvtc2 Y
checkValidDataCon
Y
Y
[j_aLA, i_aLz, p_aLB, a_aLC, b_aLD]
Y p a b :: *
Y p a b :: *
checkValidDataCon 2
forall j i (p :: i -> j -> *) (a :: j) (b :: i). p b a -> Y p a b
checkValidType
forall j i (p :: i -> j -> *) (a :: j) (b :: i).
p b a -> Y p a b :: *
check_type
forall j i (p :: i -> j -> *) (a :: j) (b :: i). p b a -> Y p a b
True
Ambiguity check for
forall j i (p :: i -> j -> *) (a :: j) (b :: i). p b a -> Y p a b
tcSubType_NC
the type of the constructor ‘Y’
forall j i (p :: i -> j -> *) (a :: j) (b :: i). p b a -> Y p a b
forall j i (p :: i -> j -> *) (a :: j) (b :: i). p b a -> Y p a b
tc_sub_tc_type (general case)
ty_actual = forall j i (p :: i -> j -> *) (a :: j) (b :: i).
p b a -> Y p a b
ty_expected = forall j i (p :: i -> j -> *) (a :: j) (b :: i).
p b a -> Y p a b
tcSkolemise
tcSkolemise
1
expected_ty forall j i (p :: i -> j -> *) (a :: j) (b :: i).
p b a -> Y p a b
inst tyvars [j_aPJ[sk:2], i_aPK[sk:2], p_aPL[sk:2], a_aPM[sk:2],
b_aPN[sk:2]]
given []
inst type p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
tc_sub_type_ds
ty_actual = forall j i (p :: i -> j -> *) (a :: j) (b :: i).
p b a -> Y p a b
ty_expected = p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
Instantiating
all tyvars? True
origin arising from a type equality forall j i (p :: i
-> j -> *) (a :: j) (b :: i).
p b a -> Y p a b
~
forall j i (p :: i -> j -> *) (a :: j) (b :: i).
p b a -> Y p a b
type forall j i (p :: i -> j -> *) (a :: j) (b :: i).
p b a -> Y p a b
theta []
leave_bndrs []
with [j_aPO[tau:2], i_aPP[tau:2], p_aPQ[tau:2], a_aPR[tau:2],
b_aPS[tau:2]]
theta: []
tc_sub_type_ds
ty_actual = p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
ty_expected = p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
tc_sub_type_ds
ty_actual = Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
ty_expected = Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
deeply_instantiate final subst
origin: arising from a type equality forall j i (p :: i
-> j -> *) (a :: j) (b :: i).
p b a -> Y p a b
~
forall j i (p :: i -> j -> *) (a :: j) (b :: i).
p b a -> Y p a b
type: Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
new type: Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
subst: [TCvSubst
In scope: InScope {j_aPO i_aPP p_aPQ a_aPR b_aPS}
Type env: []
Co env: []]
u_tys
tclvl 2
Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
arising from a type equality p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
u_tys
tclvl 2
j_aPO[tau:2] ~ j_aPJ[sk:2]
arising from a type equality p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
j_aPO[tau:2] ~ j_aPJ[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aPO[tau:2] ~ j_aPJ[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aPO[tau:2] := j_aPJ[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
i_aPP[tau:2] ~ i_aPK[sk:2]
arising from a type equality p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
i_aPP[tau:2] ~ i_aPK[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aPP[tau:2] ~ i_aPK[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aPP[tau:2] := i_aPK[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
p_aPQ[tau:2] ~ p_aPL[sk:2]
arising from a type equality p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
u_tys
tclvl 2
i_aPK[sk:2] -> j_aPJ[sk:2] -> * ~ i_aPP[tau:2] -> j_aPO[tau:2] -> *
arising from a kind equality arising from
p_aPQ[tau:2] ~ p_aPL[sk:2]
u_tys
tclvl 2
i_aPK[sk:2] ~ i_aPP[tau:2]
arising from a kind equality arising from
p_aPQ[tau:2] ~ p_aPL[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
j_aPJ[sk:2] -> * ~ j_aPO[tau:2] -> *
arising from a kind equality arising from
p_aPQ[tau:2] ~ p_aPL[sk:2]
u_tys
tclvl 2
j_aPJ[sk:2] ~ j_aPO[tau:2]
arising from a kind equality arising from
p_aPQ[tau:2] ~ p_aPL[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
p_aPQ[tau:2] ~ p_aPL[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar p_aPQ[tau:2] := p_aPL[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
a_aPR[tau:2] ~ a_aPM[sk:2]
arising from a type equality p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
u_tys
tclvl 2
j_aPJ[sk:2] ~ j_aPO[tau:2]
arising from a kind equality arising from
a_aPR[tau:2] ~ a_aPM[sk:2]
u_tys yields no coercion
writeMetaTyVar a_aPR[tau:2] := a_aPM[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
b_aPS[tau:2] ~ b_aPN[sk:2]
arising from a type equality p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
u_tys
tclvl 2
i_aPK[sk:2] ~ i_aPP[tau:2]
arising from a kind equality arising from
b_aPS[tau:2] ~ b_aPN[sk:2]
u_tys yields no coercion
writeMetaTyVar b_aPS[tau:2] := b_aPN[sk:2]
u_tys yields no coercion
u_tys yields no coercion
tc_sub_tc_type (general case)
ty_actual = p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
ty_expected = p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
tcSkolemise
tcSkolemise
2
expected_ty p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
inst tyvars []
given []
inst type p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
tc_sub_type_ds
ty_actual = p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
ty_expected = p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
deeply_instantiate final subst
origin: arising from a type expected by the context:
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
type: p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
new type: p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
subst: [TCvSubst
In scope: InScope {j_aPJ i_aPK p_aPL a_aPM b_aPN}
Type env: []
Co env: []]
u_tys
tclvl 2
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
~
p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
arising from a type equality p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
u_tys
tclvl 2
p_aPL[sk:2] b_aPN[sk:2] ~ p_aPQ[tau:2] b_aPS[tau:2]
arising from a type equality p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
u_tys
tclvl 2
p_aPL[sk:2] ~ p_aPQ[tau:2]
arising from a type equality p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
b_aPN[sk:2] ~ b_aPS[tau:2]
arising from a type equality p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
a_aPM[sk:2] ~ a_aPR[tau:2]
arising from a type equality p_aPQ[tau:2] b_aPS[tau:2] a_aPR[tau:2]
-> Y p_aPQ[tau:2] a_aPR[tau:2] b_aPS[tau:2]
~
p_aPL[sk:2] b_aPN[sk:2] a_aPM[sk:2]
-> Y p_aPL[sk:2] a_aPM[sk:2] b_aPN[sk:2]
u_tys yields no coercion
u_tys yields no coercion
simplifyAmbiguityCheck {
type = forall j i (p :: i -> j -> *) (a :: j) (b :: i).
p b a -> Y p a b
wanted = WC {}
newTcEvBinds unique = aPT
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 = aPU
reportUnsolved(ambig) }
Done ambiguity check for
forall j i (p :: i -> j -> *) (a :: j) (b :: i). p b a -> Y p a b
checkValidType done
forall j i (p :: i -> j -> *) (a :: j) (b :: i).
p b a -> Y p a b :: *
Done validity of data con
Y forall j i (p :: i -> j -> *) (a :: j) (b :: i). p b a -> Y p a b
Done validity for tycon Y
Done validity check [Y]
tcAddImplicits
tycons [Y]
implicits [Coercion axiom ‘T11480b.N:Y’, Data constructor ‘Y’,
Identifier ‘T11480b.Y’]
txExtendKindEnv []
env2
[(getY,
Identifier[getY::forall j i (p :: i -> j -> *) (a :: j) (b :: i).
Y p a b -> p b a, TopLevelLet])]
------------------------------------------------
Bindings for { [getY]
Generalisation plan
CheckGen getY :: forall j i (p :: i -> j -> *) (a :: j) (b :: i).
Y p a b -> p b a
tcPolyCheck
getY
T11480b.hs:30:54-57
tcExtendIdBndrs [getY_aQ0[<NotTopLevel>]]
env2
[(j_aLA, Type variable ‘j_aLA’ = j_aPV[sk:2]),
(i_aLz, Type variable ‘i_aLz’ = i_aPW[sk:2]),
(p_aLB, Type variable ‘p_aLB’ = p_aPX[sk:2]),
(a_aLC, Type variable ‘a_aLC’ = a_aPY[sk:2]),
(b_aLD, Type variable ‘b_aLD’ = b_aPZ[sk:2])]
tcMatchesFun
getY_aQ0
Check{Y p_aPX[sk:2] a_aPY[sk:2] b_aPZ[sk:2]
-> p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]}
tcSkolemise
tcSkolemise
2
expected_ty Y p_aPX[sk:2] a_aPY[sk:2] b_aPZ[sk:2]
-> p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
inst tyvars []
given []
inst type Y p_aPX[sk:2] a_aPY[sk:2] b_aPZ[sk:2]
-> p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
tcConPat
Y
j_aLA i_aLz (p_aLB :: i -> j -> *) (a_aLC :: j) (b_aLD :: i)
[]
[]
[j_aPV[sk:2], i_aPW[sk:2], p_aPX[sk:2], a_aPY[sk:2], b_aPZ[sk:2]]
[p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]]
RecCon: {getY = getY_B1}
find_field p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2] []
tcPatBndr(not let)
getY_B1
p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
tcExtendIdBndrs [getY_B1[<NotTopLevel>]]
env2
[(getY_B1,
Identifier[getY_B1::p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2], NotLetBound])]
tcBody Check{p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]}
tcInferId getY_B1 :: p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
tcCheckId
getY_B1
p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
Check{p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]}
tcWrapResult
Actual: p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
Expected: Check{p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]}
tc_sub_type_ds
ty_actual = p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
ty_expected = p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
deeply_instantiate final subst
origin: arising from a use of ‘getY_B1’
type: p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
new type: p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
subst: [TCvSubst
In scope: InScope {j_aPV i_aPW p_aPX a_aPY b_aPZ}
Type env: []
Co env: []]
u_tys
tclvl 2
p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
~
p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
arising from a type equality p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
~
p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
u_tys
tclvl 2
p_aPX[sk:2] b_aPZ[sk:2] ~ p_aPX[sk:2] b_aPZ[sk:2]
arising from a type equality p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
~
p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
u_tys
tclvl 2
p_aPX[sk:2] ~ p_aPX[sk:2]
arising from a type equality p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
~
p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
b_aPZ[sk:2] ~ b_aPZ[sk:2]
arising from a type equality p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
~
p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
a_aPY[sk:2] ~ a_aPY[sk:2]
arising from a type equality p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
~
p_aPX[sk:2] b_aPZ[sk:2] a_aPY[sk:2]
u_tys yields no coercion
u_tys yields no coercion
tcSpecPrags getY []
} End of bindings for
[getY]
NonRecursive
getY forall j i (p :: i -> j -> *) (a :: j) (b :: i).
Y p a b -> p b a
tcExtendIdBndrs [getY[<TopLevel>]]
env2
[(getY,
Identifier[getY::forall j i (p :: i -> j -> *) (a :: j) (b :: i).
Y p a b -> p b a, TopLevelLet])]
Adding instances:
addFamInsts
tcAddImplicits
tycons []
implicits []
txExtendKindEnv []
env2 []
kcTyClGroup
module T11480b
type family Op (p_aLw :: i_aLu -> j_aLv -> *) :: j_aLv
-> i_aLu -> * where
Op (Y p_aLx) = p_aLx
Op p_aLy = Y p_aLy
txExtendKindEnv [(Op, APromotionErr TyConPE)]
env2
[(i_aLu, Type variable ‘i_aLu’ = i_aLu[sk:1]),
(j_aLv, Type variable ‘j_aLv’ = j_aLv[sk:1])]
lk1 i_aLu
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 j_aLv
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 *
tcTyVar2b
* :: *
*
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
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
env2 [(p_aLw, Type variable ‘p_aLw’ = p_aLw[sk:1])]
lk1 j_aLv
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 i_aLu
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 *
tcTyVar2b
* :: *
*
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
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 = aQ1
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQ2
reportAllUnsolved }
kcTyClGroup: initial kinds
Op :: forall j i.
(i_aLu[sk:1] -> j_aLv[sk:1] -> *)
-> j_aLv[sk:1] -> i_aLu[sk:1] -> *
txExtendKindEnv [(Op, ATcTyCon Op)]
env2 [(p_aLx, Type variable ‘p_aLx’ = p_aLx[sk:1])]
tc_infer_args (invis) @j_aLv[sk:1]
tc_infer_args (invis) @i_aLu[sk:1]
tc_infer_args (vis)
[anon] i_aLu[sk:1] -> j_aLv[sk:1] -> *
(Y p_aLx)
lk1 Y
tcTyVar2a
Y
forall j i. (i -> j -> *) -> j -> i -> *
tc_infer_args (invis) @j_aLA
tc_infer_args (invis) @i_aLz
tc_infer_args (vis)
[anon] i -> j -> *
p_aLx
lk1 p_aLx
u_tys
tclvl 1
k_aQ3[tau:1] ~ i_aQ7[tau:1] -> j_aQ6[tau:1] -> *
arising from a type equality k_aQ3[tau:1]
~
i_aQ7[tau:1] -> j_aQ6[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aQ3[tau:1] ~ i_aQ7[tau:1] -> j_aQ6[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aQ3[tau:1] ~ i_aQ7[tau:1] -> j_aQ6[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aQ3[tau:1] := i_aQ7[tau:1] -> j_aQ6[tau:1] -> *
u_tys yields no coercion
checkExpectedKind
k_aQ3[tau:1]
i_aQ7[tau:1] -> j_aQ6[tau:1] -> *
<i_aQ7[tau:1] -> j_aQ6[tau:1] -> *>_N
u_tys
tclvl 1
j_aQ6[tau:1] -> i_aQ7[tau:1] -> *
~
i_aQ5[tau:1] -> j_aQ4[tau:1] -> *
arising from a type equality j_aQ6[tau:1] -> i_aQ7[tau:1] -> *
~
i_aQ5[tau:1] -> j_aQ4[tau:1] -> *
u_tys
tclvl 1
j_aQ6[tau:1] ~ i_aQ5[tau:1]
arising from a type equality j_aQ6[tau:1] -> i_aQ7[tau:1] -> *
~
i_aQ5[tau:1] -> j_aQ4[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aQ6[tau:1] ~ i_aQ5[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aQ6[tau:1] ~ i_aQ5[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aQ6[tau:1] := i_aQ5[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aQ7[tau:1] -> * ~ j_aQ4[tau:1] -> *
arising from a type equality j_aQ6[tau:1] -> i_aQ7[tau:1] -> *
~
i_aQ5[tau:1] -> j_aQ4[tau:1] -> *
u_tys
tclvl 1
i_aQ7[tau:1] ~ j_aQ4[tau:1]
arising from a type equality j_aQ6[tau:1] -> i_aQ7[tau:1] -> *
~
i_aQ5[tau:1] -> j_aQ4[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aQ7[tau:1] ~ j_aQ4[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aQ7[tau:1] ~ j_aQ4[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aQ7[tau:1] := j_aQ4[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aQ6[tau:1] -> i_aQ7[tau:1] -> *
~
i_aQ5[tau:1] -> j_aQ4[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality j_aQ6[tau:1] -> i_aQ7[tau:1] -> *
~
i_aQ5[tau:1] -> j_aQ4[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aQ6[tau:1] -> i_aQ7[tau:1] -> *
i_aQ5[tau:1] -> j_aQ4[tau:1] -> *
<i_aQ5[tau:1] -> j_aQ4[tau:1] -> *>_N
instantiating tybinders:
lk1 p_aLx
u_tys
tclvl 1
k_aQ3[tau:1] ~ j_aQ4[tau:1] -> i_aQ5[tau:1] -> *
arising from a type equality k_aQ3[tau:1]
~
j_aQ4[tau:1] -> i_aQ5[tau:1] -> *
found filled tyvar
k_aQ3[tau:1] :-> i_aQ7[tau:1] -> j_aQ6[tau:1] -> *
u_tys
tclvl 1
i_aQ7[tau:1] ~ j_aQ4[tau:1]
arising from a type equality k_aQ3[tau:1]
~
j_aQ4[tau:1] -> i_aQ5[tau:1] -> *
found filled tyvar i_aQ7[tau:1] :-> j_aQ4[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aQ6[tau:1] -> * ~ i_aQ5[tau:1] -> *
arising from a type equality k_aQ3[tau:1]
~
j_aQ4[tau:1] -> i_aQ5[tau:1] -> *
u_tys
tclvl 1
j_aQ6[tau:1] ~ i_aQ5[tau:1]
arising from a type equality k_aQ3[tau:1]
~
j_aQ4[tau:1] -> i_aQ5[tau:1] -> *
found filled tyvar j_aQ6[tau:1] :-> i_aQ5[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aQ3[tau:1]
~
j_aQ4[tau:1] -> i_aQ5[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aQ3[tau:1]
j_aQ4[tau:1] -> i_aQ5[tau:1] -> *
<j_aQ4[tau:1] -> i_aQ5[tau:1] -> *>_N
tcImplicitTKBndrs
[p_aLx]
[p_aLx[sk:1]]
env2 [(p_aLy, Type variable ‘p_aLy’ = p_aLy[sk:1])]
tc_infer_args (invis) @j_aLv[sk:1]
tc_infer_args (invis) @i_aLu[sk:1]
tc_infer_args (vis)
[anon] i_aLu[sk:1] -> j_aLv[sk:1] -> *
p_aLy
lk1 p_aLy
u_tys
tclvl 1
k_aQ8[tau:1] ~ i_aQa[tau:1] -> j_aQ9[tau:1] -> *
arising from a type equality k_aQ8[tau:1]
~
i_aQa[tau:1] -> j_aQ9[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aQ8[tau:1] ~ i_aQa[tau:1] -> j_aQ9[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aQ8[tau:1] ~ i_aQa[tau:1] -> j_aQ9[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aQ8[tau:1] := i_aQa[tau:1] -> j_aQ9[tau:1] -> *
u_tys yields no coercion
checkExpectedKind
k_aQ8[tau:1]
i_aQa[tau:1] -> j_aQ9[tau:1] -> *
<i_aQa[tau:1] -> j_aQ9[tau:1] -> *>_N
instantiating tybinders:
lk1 Y
tcTyVar2a
Y
forall j i. (i -> j -> *) -> j -> i -> *
tc_infer_args (invis) @j_aLA
tc_infer_args (invis) @i_aLz
tc_infer_args (vis)
[anon] i -> j -> *
p_aLy
lk1 p_aLy
u_tys
tclvl 1
k_aQ8[tau:1] ~ i_aQc[tau:1] -> j_aQb[tau:1] -> *
arising from a type equality k_aQ8[tau:1]
~
i_aQc[tau:1] -> j_aQb[tau:1] -> *
found filled tyvar
k_aQ8[tau:1] :-> i_aQa[tau:1] -> j_aQ9[tau:1] -> *
u_tys
tclvl 1
i_aQa[tau:1] ~ i_aQc[tau:1]
arising from a type equality k_aQ8[tau:1]
~
i_aQc[tau:1] -> j_aQb[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aQa[tau:1] ~ i_aQc[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aQa[tau:1] ~ i_aQc[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aQa[tau:1] := i_aQc[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aQ9[tau:1] -> * ~ j_aQb[tau:1] -> *
arising from a type equality k_aQ8[tau:1]
~
i_aQc[tau:1] -> j_aQb[tau:1] -> *
u_tys
tclvl 1
j_aQ9[tau:1] ~ j_aQb[tau:1]
arising from a type equality k_aQ8[tau:1]
~
i_aQc[tau:1] -> j_aQb[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aQ9[tau:1] ~ j_aQb[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aQ9[tau:1] ~ j_aQb[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aQ9[tau:1] := j_aQb[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aQ8[tau:1]
~
i_aQc[tau:1] -> j_aQb[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aQ8[tau:1]
i_aQc[tau:1] -> j_aQb[tau:1] -> *
<i_aQc[tau:1] -> j_aQb[tau:1] -> *>_N
u_tys
tclvl 1
j_aQb[tau:1] -> i_aQc[tau:1] -> *
~
j_aQ9[tau:1] -> i_aQa[tau:1] -> *
arising from a type equality j_aQb[tau:1] -> i_aQc[tau:1] -> *
~
j_aQ9[tau:1] -> i_aQa[tau:1] -> *
u_tys
tclvl 1
j_aQb[tau:1] ~ j_aQ9[tau:1]
arising from a type equality j_aQb[tau:1] -> i_aQc[tau:1] -> *
~
j_aQ9[tau:1] -> i_aQa[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
i_aQc[tau:1] -> * ~ i_aQa[tau:1] -> *
arising from a type equality j_aQb[tau:1] -> i_aQc[tau:1] -> *
~
j_aQ9[tau:1] -> i_aQa[tau:1] -> *
u_tys
tclvl 1
i_aQc[tau:1] ~ i_aQa[tau:1]
arising from a type equality j_aQb[tau:1] -> i_aQc[tau:1] -> *
~
j_aQ9[tau:1] -> i_aQa[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aQb[tau:1] -> i_aQc[tau:1] -> *
~
j_aQ9[tau:1] -> i_aQa[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality j_aQb[tau:1] -> i_aQc[tau:1] -> *
~
j_aQ9[tau:1] -> i_aQa[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aQb[tau:1] -> i_aQc[tau:1] -> *
j_aQ9[tau:1] -> i_aQa[tau:1] -> *
<j_aQb[tau:1] -> i_aQc[tau:1] -> *>_N
tcImplicitTKBndrs
[p_aLy]
[p_aLy[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aQd
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQe
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [] dv_tvs = []}
[]
quantifyTyVars
globals: []
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
Generalise kind
Op
[@j_aLv[sk:1], @i_aLu[sk:1], p_aLw[sk:1]]
[]
[@j_aLv[sk:1], @i_aLu[sk:1], p_aLw[sk:1]]
j_aLv[sk:1] -> i_aLu[sk:1] -> *
[@j_aLv, @i_aLu, p_aLw]
j -> i -> *
[j_aLv[sk:1], i_aLu[sk:1], p_aLw[sk:1]]
[i_aLu[sk:1], j_aLv[sk:1], p_aLw[sk:1]]
kcTyClGroup result Op :: forall j i. (i -> j -> *) -> j -> i -> *
tcTyAndCl generalized kinds
(Op, [@j_aLv, @i_aLu, p_aLw], j -> i -> *)
txExtendKindEnv [(Op, ATcTyCon Op)]
tcTyAndCl-x
type family Op (p_aLw :: i_aLu -> j_aLv -> *) :: j_aLv
-> i_aLu -> * where
Op (Y p_aLx) = p_aLx
Op p_aLy = Y p_aLy
Closed type family: Op
env2
[(i_aLu, Type variable ‘i_aLu’ = i_aLu[sk:1]),
(j_aLv, Type variable ‘j_aLv’ = j_aLv[sk:1]),
(p_aLw, Type variable ‘p_aLw’ = p_aLw[sk:1])]
env2 [(p_aLx, Type variable ‘p_aLx’ = p_aLx[sk:1])]
tc_infer_args (invis) @j_aLv
tc_infer_args (invis) @i_aLu
tc_infer_args (vis)
[anon] i -> j -> *
(Y p_aLx)
lk1 Y
tcTyVar2a
Y
forall j i. (i -> j -> *) -> j -> i -> *
tc_infer_args (invis) @j_aLA
tc_infer_args (invis) @i_aLz
tc_infer_args (vis)
[anon] i -> j -> *
p_aLx
lk1 p_aLx
u_tys
tclvl 1
k_aQf[tau:1] ~ i_aQj[tau:1] -> j_aQi[tau:1] -> *
arising from a type equality k_aQf[tau:1]
~
i_aQj[tau:1] -> j_aQi[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aQf[tau:1] ~ i_aQj[tau:1] -> j_aQi[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aQf[tau:1] ~ i_aQj[tau:1] -> j_aQi[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aQf[tau:1] := i_aQj[tau:1] -> j_aQi[tau:1] -> *
u_tys yields no coercion
checkExpectedKind
k_aQf[tau:1]
i_aQj[tau:1] -> j_aQi[tau:1] -> *
<i_aQj[tau:1] -> j_aQi[tau:1] -> *>_N
u_tys
tclvl 1
j_aQi[tau:1] -> i_aQj[tau:1] -> *
~
i_aQh[tau:1] -> j_aQg[tau:1] -> *
arising from a type equality j_aQi[tau:1] -> i_aQj[tau:1] -> *
~
i_aQh[tau:1] -> j_aQg[tau:1] -> *
u_tys
tclvl 1
j_aQi[tau:1] ~ i_aQh[tau:1]
arising from a type equality j_aQi[tau:1] -> i_aQj[tau:1] -> *
~
i_aQh[tau:1] -> j_aQg[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aQi[tau:1] ~ i_aQh[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aQi[tau:1] ~ i_aQh[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aQi[tau:1] := i_aQh[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aQj[tau:1] -> * ~ j_aQg[tau:1] -> *
arising from a type equality j_aQi[tau:1] -> i_aQj[tau:1] -> *
~
i_aQh[tau:1] -> j_aQg[tau:1] -> *
u_tys
tclvl 1
i_aQj[tau:1] ~ j_aQg[tau:1]
arising from a type equality j_aQi[tau:1] -> i_aQj[tau:1] -> *
~
i_aQh[tau:1] -> j_aQg[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aQj[tau:1] ~ j_aQg[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aQj[tau:1] ~ j_aQg[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aQj[tau:1] := j_aQg[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aQi[tau:1] -> i_aQj[tau:1] -> *
~
i_aQh[tau:1] -> j_aQg[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality j_aQi[tau:1] -> i_aQj[tau:1] -> *
~
i_aQh[tau:1] -> j_aQg[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aQi[tau:1] -> i_aQj[tau:1] -> *
i_aQh[tau:1] -> j_aQg[tau:1] -> *
<i_aQh[tau:1] -> j_aQg[tau:1] -> *>_N
instantiating tybinders:
lk1 p_aLx
u_tys
tclvl 1
k_aQf[tau:1] ~ j_aQg[tau:1] -> i_aQh[tau:1] -> *
arising from a type equality k_aQf[tau:1]
~
j_aQg[tau:1] -> i_aQh[tau:1] -> *
found filled tyvar
k_aQf[tau:1] :-> i_aQj[tau:1] -> j_aQi[tau:1] -> *
u_tys
tclvl 1
i_aQj[tau:1] ~ j_aQg[tau:1]
arising from a type equality k_aQf[tau:1]
~
j_aQg[tau:1] -> i_aQh[tau:1] -> *
found filled tyvar i_aQj[tau:1] :-> j_aQg[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aQi[tau:1] -> * ~ i_aQh[tau:1] -> *
arising from a type equality k_aQf[tau:1]
~
j_aQg[tau:1] -> i_aQh[tau:1] -> *
u_tys
tclvl 1
j_aQi[tau:1] ~ i_aQh[tau:1]
arising from a type equality k_aQf[tau:1]
~
j_aQg[tau:1] -> i_aQh[tau:1] -> *
found filled tyvar j_aQi[tau:1] :-> i_aQh[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aQf[tau:1]
~
j_aQg[tau:1] -> i_aQh[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aQf[tau:1]
j_aQg[tau:1] -> i_aQh[tau:1] -> *
<j_aQg[tau:1] -> i_aQh[tau:1] -> *>_N
tcImplicitTKBndrs
[p_aLx]
[p_aLx[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aQk
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQl
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aQg :-> j_aQg[tau:1], aQh :-> i_aQh[tau:1]]
dv_tvs = [aLx :-> p_aLx[sk:1], aQh :-> i_aQh[tau:1],
aQg :-> j_aQg[tau:1]]}
[]
Skolemising j_aQg[tau:1] := j_aQg[sk:1]
writeMetaTyVar j_aQg[tau:1] := j_aQg[sk:1]
Skolemising i_aQh[tau:1] := i_aQh[sk:1]
writeMetaTyVar i_aQh[tau:1] := i_aQh[sk:1]
quantifyTyVars
globals: []
nondep: [p_aLx[sk:1]]
dep: [j_aQg[tau:1], i_aQh[tau:1]]
dep_kvs' [j_aQg[sk:1], i_aQh[sk:1]]
nondep_tvs' [p_aLx[sk:1]]
tcFamTyPats
Op
[j_aQg[tau:1], i_aQh[tau:1], Y p_aLx[sk:1]]
[j_aQg[sk:1], i_aQh[sk:1], p_aLx[sk:1]]
env2
[(j_aQg, Type variable ‘j_aQg’ = j_aQg[sk:1]),
(i_aQh, Type variable ‘i_aQh’ = i_aQh[sk:1]),
(p_aLx, Type variable ‘p_aLx’ = p_aLx[sk:1])]
lk1 p_aLx
u_tys
tclvl 1
j_aQg[sk:1] -> i_aQh[sk:1] -> * ~ j_aQg[tau:1] -> i_aQh[tau:1] -> *
arising from a type equality j_aQg[sk:1] -> i_aQh[sk:1] -> *
~
j_aQg[tau:1] -> i_aQh[tau:1] -> *
u_tys
tclvl 1
j_aQg[sk:1] ~ j_aQg[tau:1]
arising from a type equality j_aQg[sk:1] -> i_aQh[sk:1] -> *
~
j_aQg[tau:1] -> i_aQh[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
i_aQh[sk:1] -> * ~ i_aQh[tau:1] -> *
arising from a type equality j_aQg[sk:1] -> i_aQh[sk:1] -> *
~
j_aQg[tau:1] -> i_aQh[tau:1] -> *
u_tys
tclvl 1
i_aQh[sk:1] ~ i_aQh[tau:1]
arising from a type equality j_aQg[sk:1] -> i_aQh[sk:1] -> *
~
j_aQg[tau:1] -> i_aQh[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aQg[sk:1] -> i_aQh[sk:1] -> *
~
j_aQg[tau:1] -> i_aQh[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aQg[sk:1] -> i_aQh[sk:1] -> *
j_aQg[tau:1] -> i_aQh[tau:1] -> *
<j_aQg[sk:1] -> i_aQh[sk:1] -> *>_N
solveEqualities { wanted = WC {}
newTcEvBinds unique = aQm
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQn
reportAllUnsolved }
tcTyFamInstEqn Op j_aQg i_aQh (p_aLx :: j -> i -> *)
env2 [(p_aLy, Type variable ‘p_aLy’ = p_aLy[sk:1])]
tc_infer_args (invis) @j_aLv
tc_infer_args (invis) @i_aLu
tc_infer_args (vis)
[anon] i -> j -> *
p_aLy
lk1 p_aLy
u_tys
tclvl 1
k_aQo[tau:1] ~ i_aQq[tau:1] -> j_aQp[tau:1] -> *
arising from a type equality k_aQo[tau:1]
~
i_aQq[tau:1] -> j_aQp[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aQo[tau:1] ~ i_aQq[tau:1] -> j_aQp[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aQo[tau:1] ~ i_aQq[tau:1] -> j_aQp[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aQo[tau:1] := i_aQq[tau:1] -> j_aQp[tau:1] -> *
u_tys yields no coercion
checkExpectedKind
k_aQo[tau:1]
i_aQq[tau:1] -> j_aQp[tau:1] -> *
<i_aQq[tau:1] -> j_aQp[tau:1] -> *>_N
instantiating tybinders:
lk1 Y
tcTyVar2a
Y
forall j i. (i -> j -> *) -> j -> i -> *
tc_infer_args (invis) @j_aLA
tc_infer_args (invis) @i_aLz
tc_infer_args (vis)
[anon] i -> j -> *
p_aLy
lk1 p_aLy
u_tys
tclvl 1
k_aQo[tau:1] ~ i_aQs[tau:1] -> j_aQr[tau:1] -> *
arising from a type equality k_aQo[tau:1]
~
i_aQs[tau:1] -> j_aQr[tau:1] -> *
found filled tyvar
k_aQo[tau:1] :-> i_aQq[tau:1] -> j_aQp[tau:1] -> *
u_tys
tclvl 1
i_aQq[tau:1] ~ i_aQs[tau:1]
arising from a type equality k_aQo[tau:1]
~
i_aQs[tau:1] -> j_aQr[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aQq[tau:1] ~ i_aQs[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aQq[tau:1] ~ i_aQs[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aQq[tau:1] := i_aQs[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aQp[tau:1] -> * ~ j_aQr[tau:1] -> *
arising from a type equality k_aQo[tau:1]
~
i_aQs[tau:1] -> j_aQr[tau:1] -> *
u_tys
tclvl 1
j_aQp[tau:1] ~ j_aQr[tau:1]
arising from a type equality k_aQo[tau:1]
~
i_aQs[tau:1] -> j_aQr[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aQp[tau:1] ~ j_aQr[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aQp[tau:1] ~ j_aQr[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aQp[tau:1] := j_aQr[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aQo[tau:1]
~
i_aQs[tau:1] -> j_aQr[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aQo[tau:1]
i_aQs[tau:1] -> j_aQr[tau:1] -> *
<i_aQs[tau:1] -> j_aQr[tau:1] -> *>_N
u_tys
tclvl 1
j_aQr[tau:1] -> i_aQs[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
arising from a type equality j_aQr[tau:1] -> i_aQs[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
u_tys
tclvl 1
j_aQr[tau:1] ~ j_aQp[tau:1]
arising from a type equality j_aQr[tau:1] -> i_aQs[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
i_aQs[tau:1] -> * ~ i_aQq[tau:1] -> *
arising from a type equality j_aQr[tau:1] -> i_aQs[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
u_tys
tclvl 1
i_aQs[tau:1] ~ i_aQq[tau:1]
arising from a type equality j_aQr[tau:1] -> i_aQs[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aQr[tau:1] -> i_aQs[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality j_aQr[tau:1] -> i_aQs[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aQr[tau:1] -> i_aQs[tau:1] -> *
j_aQp[tau:1] -> i_aQq[tau:1] -> *
<j_aQr[tau:1] -> i_aQs[tau:1] -> *>_N
tcImplicitTKBndrs
[p_aLy]
[p_aLy[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aQt
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQu
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aQs :-> i_aQs[tau:1], aQr :-> j_aQr[tau:1]]
dv_tvs = [aLy :-> p_aLy[sk:1], aQs :-> i_aQs[tau:1],
aQr :-> j_aQr[tau:1]]}
[]
Skolemising i_aQs[tau:1] := i_aQs[sk:1]
writeMetaTyVar i_aQs[tau:1] := i_aQs[sk:1]
Skolemising j_aQr[tau:1] := j_aQr[sk:1]
writeMetaTyVar j_aQr[tau:1] := j_aQr[sk:1]
quantifyTyVars
globals: []
nondep: [p_aLy[sk:1]]
dep: [i_aQs[tau:1], j_aQr[tau:1]]
dep_kvs' [i_aQs[sk:1], j_aQr[sk:1]]
nondep_tvs' [p_aLy[sk:1]]
tcFamTyPats
Op
[j_aQp[tau:1], i_aQq[tau:1], p_aLy[sk:1]]
[i_aQs[sk:1], j_aQr[sk:1], p_aLy[sk:1]]
env2
[(i_aQs, Type variable ‘i_aQs’ = i_aQs[sk:1]),
(j_aQr, Type variable ‘j_aQr’ = j_aQr[sk:1]),
(p_aLy, Type variable ‘p_aLy’ = p_aLy[sk:1])]
lk1 Y
tcTyVar2a
Y
forall j i. (i -> j -> *) -> j -> i -> *
tc_infer_args (invis) @j_aLA
tc_infer_args (invis) @i_aLz
tc_infer_args (vis)
[anon] i -> j -> *
p_aLy
lk1 p_aLy
u_tys
tclvl 1
i_aQs[sk:1] -> j_aQr[sk:1] -> * ~ i_aQw[tau:1] -> j_aQv[tau:1] -> *
arising from a type equality i_aQs[sk:1] -> j_aQr[sk:1] -> *
~
i_aQw[tau:1] -> j_aQv[tau:1] -> *
u_tys
tclvl 1
i_aQs[sk:1] ~ i_aQw[tau:1]
arising from a type equality i_aQs[sk:1] -> j_aQr[sk:1] -> *
~
i_aQw[tau:1] -> j_aQv[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aQw[tau:1] ~ i_aQs[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aQw[tau:1] ~ i_aQs[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aQw[tau:1] := i_aQs[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aQr[sk:1] -> * ~ j_aQv[tau:1] -> *
arising from a type equality i_aQs[sk:1] -> j_aQr[sk:1] -> *
~
i_aQw[tau:1] -> j_aQv[tau:1] -> *
u_tys
tclvl 1
j_aQr[sk:1] ~ j_aQv[tau:1]
arising from a type equality i_aQs[sk:1] -> j_aQr[sk:1] -> *
~
i_aQw[tau:1] -> j_aQv[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aQv[tau:1] ~ j_aQr[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aQv[tau:1] ~ j_aQr[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aQv[tau:1] := j_aQr[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aQs[sk:1] -> j_aQr[sk:1] -> *
~
i_aQw[tau:1] -> j_aQv[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aQs[sk:1] -> j_aQr[sk:1] -> *
i_aQw[tau:1] -> j_aQv[tau:1] -> *
<i_aQs[sk:1] -> j_aQr[sk:1] -> *>_N
u_tys
tclvl 1
j_aQv[tau:1] -> i_aQw[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
arising from a type equality j_aQv[tau:1] -> i_aQw[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
u_tys
tclvl 1
j_aQv[tau:1] ~ j_aQp[tau:1]
arising from a type equality j_aQv[tau:1] -> i_aQw[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
found filled tyvar j_aQv[tau:1] :-> j_aQr[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aQw[tau:1] -> * ~ i_aQq[tau:1] -> *
arising from a type equality j_aQv[tau:1] -> i_aQw[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
u_tys
tclvl 1
i_aQw[tau:1] ~ i_aQq[tau:1]
arising from a type equality j_aQv[tau:1] -> i_aQw[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
found filled tyvar i_aQw[tau:1] :-> i_aQs[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aQv[tau:1] -> i_aQw[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality j_aQv[tau:1] -> i_aQw[tau:1] -> *
~
j_aQp[tau:1] -> i_aQq[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aQv[tau:1] -> i_aQw[tau:1] -> *
j_aQp[tau:1] -> i_aQq[tau:1] -> *
<j_aQr[sk:1] -> i_aQs[sk:1] -> *>_N
solveEqualities { wanted = WC {}
newTcEvBinds unique = aQx
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQy
reportAllUnsolved }
tcTyFamInstEqn Op i_aQs j_aQr (p_aLy :: i -> j -> *)
Starting synonym cycle check [Op]
Done synonym cycle check [Op]
Starting family consistency check [Op]
Done family consistency [Op]
Starting validity check [Op]
Starting validity for tycon Op
checkValidTyCon
Op
Nothing
Done validity for tycon Op
Done validity check [Op]
tcAddImplicits
tycons [Op]
implicits [Coercion axiom ‘T11480b.D:R:Op’]
txExtendKindEnv []
env2 []
Adding instances:
addFamInsts
tcAddImplicits
tycons []
implicits []
txExtendKindEnv []
env2 []
kcTyClGroup
module T11480b
class Vacuous (p_aLs :: i_aLr -> i_aLr -> *) (a_aLt :: i_aLr)
txExtendKindEnv [(Vacuous, APromotionErr ClassPE)]
env2 [(i_aLr, Type variable ‘i_aLr’ = i_aLr[sk:1])]
lk1 i_aLr
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 i_aLr
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 *
tcTyVar2b
* :: *
*
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
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
env2 [(p_aLs, Type variable ‘p_aLs’ = p_aLs[sk:1])]
lk1 i_aLr
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
env2 [(a_aLt, Type variable ‘a_aLt’ = a_aLt[sk:1])]
txExtendKindEnv []
solveEqualities { wanted = WC {}
newTcEvBinds unique = aQA
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQB
reportAllUnsolved }
kcTyClGroup: initial kinds
Vacuous :: forall i.
(i_aLr[sk:1] -> i_aLr[sk:1] -> *) -> i_aLr[sk:1] -> Constraint
txExtendKindEnv [(Vacuous, ATcTyCon Vacuous)]
env2
[(i_aLr, Type variable ‘i_aLr’ = i_aLr[sk:1]),
(p_aLs, Type variable ‘p_aLs’ = p_aLs[sk:1]),
(a_aLt, Type variable ‘a_aLt’ = a_aLt[sk:1])]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aQC
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQD
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [] dv_tvs = []}
[]
quantifyTyVars
globals: []
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
Generalise kind
Vacuous
[@i_aLr[sk:1], p_aLs[sk:1], a_aLt[sk:1]]
[]
[@i_aLr[sk:1], p_aLs[sk:1], a_aLt[sk:1]]
Constraint
[@i_aLr, p_aLs, a_aLt]
Constraint
[i_aLr[sk:1], p_aLs[sk:1], a_aLt[sk:1]]
[i_aLr[sk:1], p_aLs[sk:1], a_aLt[sk:1]]
kcTyClGroup result
Vacuous :: forall i. (i -> i -> *) -> i -> Constraint
tcTyAndCl generalized kinds
(Vacuous, [@i_aLr, p_aLs, a_aLt], Constraint)
txExtendKindEnv [(Vacuous, ATcTyCon Vacuous)]
tcTyAndCl-x
class Vacuous (p_aLs :: i_aLr -> i_aLr -> *) (a_aLt :: i_aLr)
env2
[(i_aLr, Type variable ‘i_aLr’ = i_aLr[sk:1]),
(p_aLs, Type variable ‘p_aLs’ = p_aLs[sk:1]),
(a_aLt, Type variable ‘a_aLt’ = a_aLt[sk:1])]
tcClassDecl 1
Vacuous
[@i_aLr, p_aLs, a_aLt]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aQE
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQF
reportAllUnsolved }
tcClassSigs 1 Vacuous
tcClassSigs 2 Vacuous
tcClassDecl
[]
[@i_aLr, p_aLs, a_aLt]
[]
Starting synonym cycle check [Vacuous]
Done synonym cycle check [Vacuous]
Starting family consistency check [Vacuous]
Done family consistency [Vacuous]
Starting validity check [Vacuous]
Starting validity for tycon Vacuous
checkValidTyCon
Vacuous
Just Vacuous
Done validity for tycon Vacuous
Done validity check [Vacuous]
tcAddImplicits
tycons [Vacuous]
implicits [Data constructor ‘T11480b.C:Vacuous’,
Identifier ‘T11480b.C:Vacuous’]
txExtendKindEnv []
env2 []
env2
[(p_aPc, Type variable ‘p_aPc’ = p_aPc[sk:1]),
(a_aPd, Type variable ‘a_aPd’ = a_aPd[sk:1])]
lk1 Vacuous
tcTyVar2a
Vacuous
forall i. (i -> i -> *) -> i -> Constraint
tc_infer_args (invis) @i_aLr
tc_infer_args (vis)
[anon] i -> i -> *
p_aPc
lk1 p_aPc
u_tys
tclvl 1
k_aQM[tau:1] ~ i_aQO[tau:1] -> i_aQO[tau:1] -> *
arising from a type equality k_aQM[tau:1]
~
i_aQO[tau:1] -> i_aQO[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aQM[tau:1] ~ i_aQO[tau:1] -> i_aQO[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aQM[tau:1] ~ i_aQO[tau:1] -> i_aQO[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aQM[tau:1] := i_aQO[tau:1] -> i_aQO[tau:1] -> *
u_tys yields no coercion
checkExpectedKind
k_aQM[tau:1]
i_aQO[tau:1] -> i_aQO[tau:1] -> *
<i_aQO[tau:1] -> i_aQO[tau:1] -> *>_N
tc_infer_args (vis)
[anon] i
a_aPd
lk1 a_aPd
u_tys
tclvl 1
k_aQN[tau:1] ~ i_aQO[tau:1]
arising from a type equality k_aQN[tau:1] ~ i_aQO[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aQN[tau:1] ~ i_aQO[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aQN[tau:1] ~ i_aQO[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aQN[tau:1] := i_aQO[tau:1]
u_tys yields no coercion
checkExpectedKind
k_aQN[tau:1]
i_aQO[tau:1]
<i_aQO[tau:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
tcImplicitTKBndrs
[p_aPc, a_aPd]
[p_aPc[sk:1], a_aPd[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aQP
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQQ
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aQO :-> i_aQO[tau:1]] dv_tvs = []}
[]
Skolemising i_aQO[tau:1] := i_aQO[sk:1]
writeMetaTyVar i_aQO[tau:1] := i_aQO[sk:1]
quantifyTyVars
globals: []
nondep: []
dep: [i_aQO[tau:1]]
dep_kvs' [i_aQO[sk:1]]
nondep_tvs' []
checkValidInstance {
forall i (p :: i -> i -> *) (a :: i). Vacuous p a
cvi 2 forall i (p :: i -> i -> *) (a :: i). Vacuous p a
End checkValidInstance }
tcLocalInstDecl Vacuous p_aPc a_aPd
env2
[(i_aQO, Type variable ‘i_aQO’ = i_aQO),
(p_aPc, Type variable ‘p_aPc’ = p_aPc),
(a_aPd, Type variable ‘a_aPd’ = a_aPd)]
env2
[(i_aQO, Type variable ‘i_aQO’ = i_aQO),
(p_aPc, Type variable ‘p_aPc’ = p_aPc),
(a_aPd, Type variable ‘a_aPd’ = a_aPd)]
doClsInstErrorChecks
instance forall i (p :: i -> i -> *) (a :: i). Vacuous p a
-- Defined at T11480b.hs:37:10
Adding instances:
T11480b.$fVacuousipa :
instance forall i (p :: i -> i -> *) (a :: i). Vacuous p a
-- Defined at T11480b.hs:37:10
addFamInsts
tcAddImplicits
tycons []
implicits []
txExtendKindEnv []
env2 []
kcTyClGroup
module T11480b
data Dict (p_aLp :: Constraint) where Dict :: p_aLq => Dict p_aLq
txExtendKindEnv [(Dict, APromotionErr TyConPE)]
env2 []
lk1 Constraint
tcTyVar2a
Constraint
*
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
env2 [(p_aLp, Type variable ‘p_aLp’ = p_aLp[sk:1])]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aQV
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQW
reportAllUnsolved }
kcTyClGroup: initial kinds
Dict :: Constraint -> *
(Dict, APromotionErr RecDataConPE)
txExtendKindEnv
[(Dict, ATcTyCon Dict), (Dict, APromotionErr RecDataConPE)]
env2 [(p_aLp, Type variable ‘p_aLp’ = p_aLp[sk:1])]
env2 [(p_aLq, Type variable ‘p_aLq’ = p_aLq[sk:1])]
lk1 p_aLq
u_tys
tclvl 1
k_aQX[tau:1] ~ Constraint
arising from a type equality k_aQX[tau:1] ~ Constraint
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from k_aQX[tau:1] ~ Constraint
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from k_aQX[tau:1] ~ Constraint
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aQX[tau:1] := Constraint
u_tys yields no coercion
checkExpectedKind
k_aQX[tau:1]
Constraint
<Constraint>_N
lk1 Dict
lk1 (loopy) Dict
tcTyVar2a
Dict
Constraint -> *
tc_infer_args (vis)
[anon] Constraint
p_aLq
lk1 p_aLq
u_tys
tclvl 1
k_aQX[tau:1] ~ Constraint
arising from a type equality k_aQX[tau:1] ~ Constraint
found filled tyvar k_aQX[tau:1] :-> Constraint
u_tys yields no coercion
checkExpectedKind
k_aQX[tau:1]
Constraint
<Constraint>_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
lookupCF
Dict
Just []
[rKl :-> [runNat{runNat}], rKy :-> [], rKC :-> [getY{getY}]]
tcExplicitTKBndrs
Hs vars: []
tvs:
tcImplicitTKBndrs
[p_aLq]
[p_aLq[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aQY
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aQZ
reportAllUnsolved }
solveEqualities { wanted = WC {}
newTcEvBinds unique = aR0
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aR1
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [] dv_tvs = []}
[]
quantifyTyVars
globals: []
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
Generalise kind
Dict
[p_aLp[sk:1]]
[]
[p_aLp[sk:1]]
*
[p_aLp]
*
[p_aLp[sk:1]]
[p_aLp[sk:1]]
kcTyClGroup result Dict :: Constraint -> *
tcTyAndCl generalized kinds (Dict, [p_aLp], *)
txExtendKindEnv [(Dict, ATcTyCon Dict)]
tcTyAndCl-x
data Dict (p_aLp :: Constraint) where Dict :: p_aLq => Dict p_aLq
env2 [(p_aLp, Type variable ‘p_aLp’ = p_aLp[sk:1])]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aR3
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aR4
reportAllUnsolved }
tcConDecl 1 [Dict]
env2 [(p_aLq, Type variable ‘p_aLq’ = p_aLq[sk:1])]
lk1 p_aLq
u_tys
tclvl 1
k_aR5[tau:1] ~ Constraint
arising from a type equality k_aR5[tau:1] ~ Constraint
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from k_aR5[tau:1] ~ Constraint
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from k_aR5[tau:1] ~ Constraint
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aR5[tau:1] := Constraint
u_tys yields no coercion
checkExpectedKind
k_aR5[tau:1]
Constraint
<Constraint>_N
lk1 Dict
tcTyVar2a
Dict
Constraint -> *
tc_infer_args (vis)
[anon] Constraint
p_aLq
lk1 p_aLq
u_tys
tclvl 1
k_aR5[tau:1] ~ Constraint
arising from a type equality k_aR5[tau:1] ~ Constraint
found filled tyvar k_aR5[tau:1] :-> Constraint
u_tys yields no coercion
checkExpectedKind
k_aR5[tau:1]
Constraint
<Constraint>_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
lookupCF
Dict
Just []
[rKl :-> [runNat{runNat}], rKy :-> [], rKC :-> [getY{getY}]]
tcExplicitTKBndrs
Hs vars: []
tvs:
tcImplicitTKBndrs
[p_aLq]
[p_aLq[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aR6
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aR7
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [] dv_tvs = []}
[]
quantifyTyVars
globals: []
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
tcConDecl 2
[Dict]
[]
tcConDecl 2 [Dict]
tcDataDefn
Dict
[p_aLp]
[]
Starting synonym cycle check [Dict]
Done synonym cycle check [Dict]
Starting family consistency check [Dict]
Done family consistency [Dict]
Starting validity check [Dict]
Starting validity for tycon Dict
checkValidTyCon
Dict
Nothing
cvtc1 Dict
cvtc2 Dict
checkValidDataCon
Dict
Dict
[p_aLp]
Dict p :: *
Dict p :: *
checkValidDataCon 2 forall (p :: Constraint). p => Dict p
checkValidType forall (p :: Constraint). p => Dict p :: *
check_type
forall (p :: Constraint). p => Dict p
True
check_valid_theta [p]
Ambiguity check for forall (p :: Constraint). p => Dict p
tcSubType_NC
the type of the constructor ‘Dict’
forall (p :: Constraint). p => Dict p
forall (p :: Constraint). p => Dict p
tc_sub_tc_type (general case)
ty_actual = forall (p :: Constraint). p => Dict p
ty_expected = forall (p :: Constraint). p => Dict p
tcSkolemise
tcSkolemise
1
expected_ty forall (p :: Constraint). p => Dict p
inst tyvars [p_aRe[sk:2]]
given [irred_aRf]
inst type Dict p_aRe[sk:2]
tc_sub_type_ds
ty_actual = forall (p :: Constraint). p => Dict p
ty_expected = Dict p_aRe[sk:2]
instCallConstraints [irred_aRh]
Instantiating
all tyvars? True
origin arising from a type equality forall (p :: Constraint).
p =>
Dict p
~
forall (p :: Constraint). p => Dict p
type forall (p :: Constraint). p => Dict p
theta [p]
leave_bndrs []
with [p_aRg[tau:2]]
theta: [p_aRg[tau:2]]
tc_sub_type_ds
ty_actual = Dict p_aRg[tau:2]
ty_expected = Dict p_aRe[sk:2]
deeply_instantiate final subst
origin: arising from a type equality forall (p :: Constraint).
p =>
Dict p
~
forall (p :: Constraint). p => Dict p
type: Dict p_aRg[tau:2]
new type: Dict p_aRg[tau:2]
subst: [TCvSubst In scope: InScope {p_aRg} Type env: [] Co env: []]
u_tys
tclvl 2
Dict p_aRg[tau:2] ~ Dict p_aRe[sk:2]
arising from a type equality Dict p_aRg[tau:2] ~ Dict p_aRe[sk:2]
u_tys
tclvl 2
p_aRg[tau:2] ~ p_aRe[sk:2]
arising from a type equality Dict p_aRg[tau:2] ~ Dict p_aRe[sk:2]
u_tys
tclvl 2
Constraint ~ Constraint
arising from a kind equality arising from
p_aRg[tau:2] ~ p_aRe[sk:2]
u_tys yields no coercion
writeMetaTyVar p_aRg[tau:2] := p_aRe[sk:2]
u_tys yields no coercion
u_tys yields no coercion
newTcEvBinds unique = aRi
simplifyAmbiguityCheck {
type = forall (p :: Constraint). p => Dict p
wanted = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (p_aRe[sk:2] :: Constraint)
No-eqs = False
Status = Unsolved
Given = irred_aRf :: p_aRe[sk:2]
Wanted =
WC {wc_simple = [WD] irred_aRh {0}:: p_aRg[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aRi>
Needed = []
the type of the constructor ‘Dict’:
p_aRe[sk:2] => Dict p_aRe[sk:2] }}
newTcEvBinds unique = aRj
solveWanteds {
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (p_aRe[sk:2] :: Constraint)
No-eqs = False
Status = Unsolved
Given = irred_aRf :: p_aRe[sk:2]
Wanted =
WC {wc_simple = [WD] irred_aRh {0}:: p_aRg[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aRi>
Needed = []
the type of the constructor ‘Dict’:
p_aRe[sk:2] => Dict p_aRe[sk:2] }}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveNestedImplications starting {
solveImplication {
Implic {
TcLevel = 2
Skolems = (p_aRe[sk:2] :: Constraint)
No-eqs = False
Status = Unsolved
Given = irred_aRf :: p_aRe[sk:2]
Wanted =
WC {wc_simple = [WD] irred_aRh {0}:: p_aRg[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aRi>
Needed = []
the type of the constructor ‘Dict’:
p_aRe[sk:2] => Dict p_aRe[sk:2] }
Inerts {Unsolved goals = 0}
solveSimpleGivens {
[[G] irred_aRf {0}:: p_aRe[sk:2] (CNonCanonical)]
-----------------------------
Start solver pipeline {
work item = [G] irred_aRf {0}:: p_aRe[sk:2] (CNonCanonical)
inerts = {Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] irred_aRf {0}:: p_aRe[sk:2] (CNonCanonical)
canonicalize (non-canonical)
[G] irred_aRf {0}:: p_aRe[sk:2] (CNonCanonical)
canEvNC:irred p_aRe[sk:2]
can_pred IrredPred = p_aRe[sk:2]
flatten { p_aRe[sk:2]
Unfilled tyvar p_aRe[sk:2]
flatten } p_aRe[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] irred_aRf {0}:: p_aRe[sk:2] (CIrredEvCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] irred_aRf {0}:: p_aRe[sk:2] (CIrredEvCan)
doTopReact [G] irred_aRf {0}:: p_aRe[sk:2] (CIrredEvCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] irred_aRf {0}:: p_aRe[sk:2] (CIrredEvCan)
addInertCan }
Step 1[l:2,d:0] Kept as inert: [G] irred_aRf {0}:: p_aRe[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] irred_aRf {0}:: p_aRe[sk:2] (CIrredEvCan)
End solveSimpleGivens }
solveWanteds {
WC {wc_simple = [WD] irred_aRh {0}:: p_aRg[tau:2] (CNonCanonical)}
solveSimpleWanteds {
{[WD] irred_aRh {0}:: p_aRg[tau:2] (CNonCanonical)}
-----------------------------
Start solver pipeline {
work item = [WD] irred_aRh {0}:: p_aRg[tau:2] (CNonCanonical)
inerts = {Irreds = [G] irred_aRf {0}:: p_aRe[sk:2] (CIrredEvCan)
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [WD] irred_aRh {0}:: p_aRg[tau:2] (CNonCanonical)
canonicalize (non-canonical)
[WD] irred_aRh {0}:: p_aRg[tau:2] (CNonCanonical)
canEvNC:irred p_aRg[tau:2]
can_pred IrredPred = p_aRg[tau:2]
flatten { p_aRg[tau:2]
Following filled tyvar p_aRg[tau:2] = p_aRe[sk:2]
Unfilled tyvar p_aRe[sk:2]
flatten } p_aRe[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] irred_aRh {0}:: p_aRe[sk:2] (CIrredEvCan)
addTcEvBind
aRi
[W] irred_aRh = irred_aRf
end stage interact with inerts }
Step 2[l:2,d:0] Irred equal (keep):
[WD] irred_aRh {0}:: p_aRe[sk:2]
End solver pipeline (discharged) }
getUnsolvedInerts
tv eqs = {}
fun eqs = {}
insols = {}
others = {}
implics = {}
Unflattening
{Funeqs =
Tv eqs =}
Unflattening 1 {}
Unflattening 2 {}
Unflattening 3 {}
Unflattening done {}
zonkSimples done: {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {[W] irred_aRh = irred_aRf}
getNoGivenEqs
True
{Irreds = [G] irred_aRf {0}:: p_aRe[sk:2] (CIrredEvCan)
Unsolved goals = 0}
{}
solveImplication 2
{}
WC {}
setImplicationStatus 2
[irred_aRf]
([aRh :-> [W] irred_aRh = irred_aRf], [])
[aRf :-> irred_aRf]
solveImplication end }
no_given_eqs = False
floated_eqs = {}
res_implic = Nothing
implication evbinds = {[W] irred_aRh = irred_aRf}
implication tvcs = []
solveNestedImplications end }
all floated_eqs = {}
unsolved_implics = {Nothing}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
Constraint solver steps = 2
End simplifyAmbiguityCheck }
reportUnsolved(ambig) {
newTcEvBinds unique = aRk
reportUnsolved(ambig) }
Done ambiguity check for forall (p :: Constraint). p => Dict p
checkValidType done forall (p :: Constraint). p => Dict p :: *
Done validity of data con
Dict forall (p :: Constraint). p => Dict p
Done validity for tycon Dict
Done validity check [Dict]
tcAddImplicits
tycons [Dict]
implicits [Data constructor ‘Dict’, Identifier ‘T11480b.Dict’]
txExtendKindEnv []
env2 []
Adding instances:
addFamInsts
tcAddImplicits
tycons []
implicits []
txExtendKindEnv []
env2 []
kcTyClGroup
module T11480b
data Nat (p_aKL :: i_aKK -> i_aKK -> *) (q_aKN :: j_aKM
-> j_aKM -> *) (f_aKO :: i_aKK
-> j_aKM) (g_aKP :: i_aKK
-> j_aKM)
where
Nat :: (Functor p_aKQ q_aKR f_aKS, Functor p_aKQ q_aKR g_aKT) =>
{runNat :: forall a_aKU.
Ob p_aKQ a_aKU => q_aKR (f_aKS a_aKU) (g_aKT a_aKU)}
-> Nat p_aKQ q_aKR f_aKS g_aKT
class (Category p_aKW, Category q_aKY) => Functor (p_aKW :: i_aKV
-> i_aKV -> *) (q_aKY :: j_aKX
-> j_aKX
-> *) (f_aKZ :: i_aKV
-> j_aKX) | f_aKZ -> p_aKW
q_aKY where
fmap :: p_aKW a_aL0 b_aL1 -> q_aKY (f_aKZ a_aL0) (f_aKZ b_aL1)
class Functor (Op p_aL3) (Nat p_aL3 (->)) p_aL3 => Category (p_aL3 :: i_aL2
-> i_aL2 -> *) where
type Ob p_aL3 :: i_aL2 -> Constraint
type Ob p_aL4 = Vacuous p_aL4
id :: Ob p_aL3 a_aL5 => p_aL3 a_aL5 a_aL5
(.) :: p_aL3 b_aL6 c_aL7 -> p_aL3 a_aL8 b_aL6 -> p_aL3 a_aL8 c_aL7
source :: p_aL3 a_aL9 b_aLa -> Dict (Ob p_aL3 a_aL9)
default source ::
(Ob p_aL3 ~ Vacuous p_aL3) =>
p_aL3 a_aLb b_aLc -> Dict (Ob p_aL3 a_aLb)
source _ = Dict
target :: p_aL3 a_aLd b_aLe -> Dict (Ob p_aL3 b_aLe)
default target ::
(Ob p_aL3 ~ Vacuous p_aL3) =>
p_aL3 a_aLf b_aLg -> Dict (Ob p_aL3 b_aLg)
target _ = Dict
op :: p_aL3 b_aLh a_aLi -> Op p_aL3 a_aLi b_aLh
default op ::
Op p_aL3 ~ Y p_aL3 => p_aL3 b_aLj a_aLk -> Op p_aL3 a_aLk b_aLj
op = Y
unop :: Op p_aL3 b_aLl a_aLm -> p_aL3 a_aLm b_aLl
default unop ::
Op p_aL3 ~ Y p_aL3 => Op p_aL3 b_aLn a_aLo -> p_aL3 a_aLo b_aLn
unop = getY
txExtendKindEnv
[(Nat, APromotionErr TyConPE), (Functor, APromotionErr ClassPE),
(Category, APromotionErr ClassPE), (Ob, APromotionErr TyConPE)]
env2
[(i_aKK, Type variable ‘i_aKK’ = i_aKK[sk:1]),
(j_aKM, Type variable ‘j_aKM’ = j_aKM[sk:1])]
lk1 i_aKK
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 i_aKK
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 *
tcTyVar2b
* :: *
*
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
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
env2 [(p_aKL, Type variable ‘p_aKL’ = p_aKL[sk:1])]
lk1 j_aKM
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 j_aKM
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 *
tcTyVar2b
* :: *
*
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
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
env2 [(q_aKN, Type variable ‘q_aKN’ = q_aKN[sk:1])]
lk1 i_aKK
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 j_aKM
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
env2 [(f_aKO, Type variable ‘f_aKO’ = f_aKO[sk:1])]
lk1 i_aKK
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 j_aKM
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
env2 [(g_aKP, Type variable ‘g_aKP’ = g_aKP[sk:1])]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aRl
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aRm
reportAllUnsolved }
env2
[(i_aKV, Type variable ‘i_aKV’ = i_aKV[sk:1]),
(j_aKX, Type variable ‘j_aKX’ = j_aKX[sk:1])]
lk1 i_aKV
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 i_aKV
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 *
tcTyVar2b
* :: *
*
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
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
env2 [(p_aKW, Type variable ‘p_aKW’ = p_aKW[sk:1])]
lk1 j_aKX
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 j_aKX
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 *
tcTyVar2b
* :: *
*
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
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
env2 [(q_aKY, Type variable ‘q_aKY’ = q_aKY[sk:1])]
lk1 i_aKV
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 j_aKX
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
env2 [(f_aKZ, Type variable ‘f_aKZ’ = f_aKZ[sk:1])]
txExtendKindEnv []
solveEqualities { wanted = WC {}
newTcEvBinds unique = aRn
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aRo
reportAllUnsolved }
env2 [(i_aL2, Type variable ‘i_aL2’ = i_aL2[sk:1])]
lk1 i_aL2
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 i_aL2
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 *
tcTyVar2b
* :: *
*
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
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
env2 [(p_aL3, Type variable ‘p_aL3’ = p_aL3[sk:1])]
txExtendKindEnv [(Ob, APromotionErr TyConPE)]
env2 []
lk1 i_aL2
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 Constraint
tcTyVar2a
Constraint
*
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 = aRp
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aRq
reportAllUnsolved }
solveEqualities { wanted = WC {}
newTcEvBinds unique = aRr
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aRs
reportAllUnsolved }
kcTyClGroup: initial kinds
Nat :: forall i j.
(i_aKK[sk:1] -> i_aKK[sk:1] -> *)
-> (j_aKM[sk:1] -> j_aKM[sk:1] -> *)
-> (i_aKK[sk:1] -> j_aKM[sk:1])
-> (i_aKK[sk:1] -> j_aKM[sk:1])
-> *
(Nat, APromotionErr RecDataConPE)
Functor :: forall i j.
(i_aKV[sk:1] -> i_aKV[sk:1] -> *)
-> (j_aKX[sk:1] -> j_aKX[sk:1] -> *)
-> (i_aKV[sk:1] -> j_aKX[sk:1])
-> Constraint
Category :: forall i.
(i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> Constraint
Ob :: forall i.
(i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> i_aL2[sk:1] -> Constraint
txExtendKindEnv
[(Nat, ATcTyCon Nat), (Nat, APromotionErr RecDataConPE),
(Functor, ATcTyCon Functor), (Category, ATcTyCon Category),
(Ob, ATcTyCon Ob)]
env2
[(i_aKK, Type variable ‘i_aKK’ = i_aKK[sk:1]),
(j_aKM, Type variable ‘j_aKM’ = j_aKM[sk:1]),
(p_aKL, Type variable ‘p_aKL’ = p_aKL[sk:1]),
(q_aKN, Type variable ‘q_aKN’ = q_aKN[sk:1]),
(f_aKO, Type variable ‘f_aKO’ = f_aKO[sk:1]),
(g_aKP, Type variable ‘g_aKP’ = g_aKP[sk:1])]
env2
[(p_aKQ, Type variable ‘p_aKQ’ = p_aKQ[sk:1]),
(q_aKR, Type variable ‘q_aKR’ = q_aKR[sk:1]),
(f_aKS, Type variable ‘f_aKS’ = f_aKS[sk:1]),
(g_aKT, Type variable ‘g_aKT’ = g_aKT[sk:1])]
lk1 Functor
lk1 (loopy) Functor
tcTyVar2a
Functor
forall i j.
(i_aKV[sk:1] -> i_aKV[sk:1] -> *)
-> (j_aKX[sk:1] -> j_aKX[sk:1] -> *)
-> (i_aKV[sk:1] -> j_aKX[sk:1])
-> Constraint
tc_infer_args (invis) @i_aKV[sk:1]
tc_infer_args (invis) @j_aKX[sk:1]
tc_infer_args (vis)
[anon] i_aKV[sk:1] -> i_aKV[sk:1] -> *
p_aKQ
lk1 p_aKQ
u_tys
tclvl 1
k_aRt[tau:1] ~ i_aRx[tau:1] -> i_aRx[tau:1] -> *
arising from a type equality k_aRt[tau:1]
~
i_aRx[tau:1] -> i_aRx[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aRt[tau:1] ~ i_aRx[tau:1] -> i_aRx[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aRt[tau:1] ~ i_aRx[tau:1] -> i_aRx[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aRt[tau:1] := i_aRx[tau:1] -> i_aRx[tau:1] -> *
u_tys yields no coercion
checkExpectedKind
k_aRt[tau:1]
i_aRx[tau:1] -> i_aRx[tau:1] -> *
<i_aRx[tau:1] -> i_aRx[tau:1] -> *>_N
tc_infer_args (vis)
[anon] j_aKX[sk:1] -> j_aKX[sk:1] -> *
q_aKR
lk1 q_aKR
u_tys
tclvl 1
k_aRu[tau:1] ~ j_aRy[tau:1] -> j_aRy[tau:1] -> *
arising from a type equality k_aRu[tau:1]
~
j_aRy[tau:1] -> j_aRy[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aRu[tau:1] ~ j_aRy[tau:1] -> j_aRy[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aRu[tau:1] ~ j_aRy[tau:1] -> j_aRy[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aRu[tau:1] := j_aRy[tau:1] -> j_aRy[tau:1] -> *
u_tys yields no coercion
checkExpectedKind
k_aRu[tau:1]
j_aRy[tau:1] -> j_aRy[tau:1] -> *
<j_aRy[tau:1] -> j_aRy[tau:1] -> *>_N
tc_infer_args (vis)
[anon] i_aKV[sk:1] -> j_aKX[sk:1]
f_aKS
lk1 f_aKS
u_tys
tclvl 1
k_aRv[tau:1] ~ i_aRx[tau:1] -> j_aRy[tau:1]
arising from a type equality k_aRv[tau:1]
~
i_aRx[tau:1] -> j_aRy[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aRv[tau:1] ~ i_aRx[tau:1] -> j_aRy[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aRv[tau:1] ~ i_aRx[tau:1] -> j_aRy[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aRv[tau:1] := i_aRx[tau:1] -> j_aRy[tau:1]
u_tys yields no coercion
checkExpectedKind
k_aRv[tau:1]
i_aRx[tau:1] -> j_aRy[tau:1]
<i_aRx[tau:1] -> j_aRy[tau:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 Functor
lk1 (loopy) Functor
tcTyVar2a
Functor
forall i j.
(i_aKV[sk:1] -> i_aKV[sk:1] -> *)
-> (j_aKX[sk:1] -> j_aKX[sk:1] -> *)
-> (i_aKV[sk:1] -> j_aKX[sk:1])
-> Constraint
tc_infer_args (invis) @i_aKV[sk:1]
tc_infer_args (invis) @j_aKX[sk:1]
tc_infer_args (vis)
[anon] i_aKV[sk:1] -> i_aKV[sk:1] -> *
p_aKQ
lk1 p_aKQ
u_tys
tclvl 1
k_aRt[tau:1] ~ i_aRz[tau:1] -> i_aRz[tau:1] -> *
arising from a type equality k_aRt[tau:1]
~
i_aRz[tau:1] -> i_aRz[tau:1] -> *
found filled tyvar
k_aRt[tau:1] :-> i_aRx[tau:1] -> i_aRx[tau:1] -> *
u_tys
tclvl 1
i_aRx[tau:1] ~ i_aRz[tau:1]
arising from a type equality k_aRt[tau:1]
~
i_aRz[tau:1] -> i_aRz[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aRx[tau:1] ~ i_aRz[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aRx[tau:1] ~ i_aRz[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aRx[tau:1] := i_aRz[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aRx[tau:1] -> * ~ i_aRz[tau:1] -> *
arising from a type equality k_aRt[tau:1]
~
i_aRz[tau:1] -> i_aRz[tau:1] -> *
u_tys
tclvl 1
i_aRx[tau:1] ~ i_aRz[tau:1]
arising from a type equality k_aRt[tau:1]
~
i_aRz[tau:1] -> i_aRz[tau:1] -> *
found filled tyvar i_aRx[tau:1] :-> i_aRz[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aRt[tau:1]
~
i_aRz[tau:1] -> i_aRz[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aRt[tau:1]
i_aRz[tau:1] -> i_aRz[tau:1] -> *
<i_aRz[tau:1] -> i_aRz[tau:1] -> *>_N
tc_infer_args (vis)
[anon] j_aKX[sk:1] -> j_aKX[sk:1] -> *
q_aKR
lk1 q_aKR
u_tys
tclvl 1
k_aRu[tau:1] ~ j_aRA[tau:1] -> j_aRA[tau:1] -> *
arising from a type equality k_aRu[tau:1]
~
j_aRA[tau:1] -> j_aRA[tau:1] -> *
found filled tyvar
k_aRu[tau:1] :-> j_aRy[tau:1] -> j_aRy[tau:1] -> *
u_tys
tclvl 1
j_aRy[tau:1] ~ j_aRA[tau:1]
arising from a type equality k_aRu[tau:1]
~
j_aRA[tau:1] -> j_aRA[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aRy[tau:1] ~ j_aRA[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aRy[tau:1] ~ j_aRA[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aRy[tau:1] := j_aRA[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aRy[tau:1] -> * ~ j_aRA[tau:1] -> *
arising from a type equality k_aRu[tau:1]
~
j_aRA[tau:1] -> j_aRA[tau:1] -> *
u_tys
tclvl 1
j_aRy[tau:1] ~ j_aRA[tau:1]
arising from a type equality k_aRu[tau:1]
~
j_aRA[tau:1] -> j_aRA[tau:1] -> *
found filled tyvar j_aRy[tau:1] :-> j_aRA[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aRu[tau:1]
~
j_aRA[tau:1] -> j_aRA[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aRu[tau:1]
j_aRA[tau:1] -> j_aRA[tau:1] -> *
<j_aRA[tau:1] -> j_aRA[tau:1] -> *>_N
tc_infer_args (vis)
[anon] i_aKV[sk:1] -> j_aKX[sk:1]
g_aKT
lk1 g_aKT
u_tys
tclvl 1
k_aRw[tau:1] ~ i_aRz[tau:1] -> j_aRA[tau:1]
arising from a type equality k_aRw[tau:1]
~
i_aRz[tau:1] -> j_aRA[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aRw[tau:1] ~ i_aRz[tau:1] -> j_aRA[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aRw[tau:1] ~ i_aRz[tau:1] -> j_aRA[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aRw[tau:1] := i_aRz[tau:1] -> j_aRA[tau:1]
u_tys yields no coercion
checkExpectedKind
k_aRw[tau:1]
i_aRz[tau:1] -> j_aRA[tau:1]
<i_aRz[tau:1] -> j_aRA[tau:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
tcConArg 1
forall a_aKU. Ob p_aKQ a_aKU => q_aKR (f_aKS a_aKU) (g_aKT a_aKU)
env2 [(a_aKU, Type variable ‘a_aKU’ = a_aKU[sk:1])]
lk1 Ob
lk1 (loopy) Ob
instantiating tybinders: @i_aL2[sk:1] := i_aRD[tau:1]
tcTyVar2b
Ob :: forall i.
(i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> i_aL2[sk:1] -> Constraint
(i_aRD[tau:1] -> i_aRD[tau:1] -> *) -> i_aRD[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aRD[tau:1] -> i_aRD[tau:1] -> *
p_aKQ
lk1 p_aKQ
u_tys
tclvl 1
k_aRt[tau:1] ~ i_aRD[tau:1] -> i_aRD[tau:1] -> *
arising from a type equality k_aRt[tau:1]
~
i_aRD[tau:1] -> i_aRD[tau:1] -> *
found filled tyvar
k_aRt[tau:1] :-> i_aRx[tau:1] -> i_aRx[tau:1] -> *
u_tys
tclvl 1
i_aRx[tau:1] ~ i_aRD[tau:1]
arising from a type equality k_aRt[tau:1]
~
i_aRD[tau:1] -> i_aRD[tau:1] -> *
found filled tyvar i_aRx[tau:1] :-> i_aRz[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aRz[tau:1] ~ i_aRD[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aRz[tau:1] ~ i_aRD[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aRz[tau:1] := i_aRD[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aRx[tau:1] -> * ~ i_aRD[tau:1] -> *
arising from a type equality k_aRt[tau:1]
~
i_aRD[tau:1] -> i_aRD[tau:1] -> *
u_tys
tclvl 1
i_aRx[tau:1] ~ i_aRD[tau:1]
arising from a type equality k_aRt[tau:1]
~
i_aRD[tau:1] -> i_aRD[tau:1] -> *
found filled tyvar i_aRx[tau:1] :-> i_aRz[tau:1]
found filled tyvar i_aRz[tau:1] :-> i_aRD[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aRt[tau:1]
~
i_aRD[tau:1] -> i_aRD[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aRt[tau:1]
i_aRD[tau:1] -> i_aRD[tau:1] -> *
<i_aRD[tau:1] -> i_aRD[tau:1] -> *>_N
tc_infer_args (vis)
[anon] i_aRD[tau:1]
a_aKU
lk1 a_aKU
u_tys
tclvl 1
k_aRC[tau:1] ~ i_aRD[tau:1]
arising from a type equality k_aRC[tau:1] ~ i_aRD[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aRC[tau:1] ~ i_aRD[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aRC[tau:1] ~ i_aRD[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aRC[tau:1] := i_aRD[tau:1]
u_tys yields no coercion
checkExpectedKind
k_aRC[tau:1]
i_aRD[tau:1]
<i_aRD[tau:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 q_aKR
tc_infer_args (vis)
[anon] j_aRA[tau:1]
(f_aKS a_aKU)
lk1 f_aKS
tc_infer_args (vis)
[anon] i_aRD[tau:1]
a_aKU
lk1 a_aKU
u_tys
tclvl 1
k_aRC[tau:1] ~ i_aRD[tau:1]
arising from a type equality k_aRC[tau:1] ~ i_aRD[tau:1]
found filled tyvar k_aRC[tau:1] :-> i_aRD[tau:1]
u_tys yields no coercion
checkExpectedKind
k_aRC[tau:1]
i_aRD[tau:1]
<i_aRD[tau:1]>_N
u_tys
tclvl 1
j_aRA[tau:1] ~ j_aRA[tau:1]
arising from a type equality j_aRA[tau:1] ~ j_aRA[tau:1]
u_tys yields no coercion
checkExpectedKind
j_aRA[tau:1]
j_aRA[tau:1]
<j_aRA[tau:1]>_N
tc_infer_args (vis)
[anon] j_aRA[tau:1]
(g_aKT a_aKU)
lk1 g_aKT
tc_infer_args (vis)
[anon] i_aRD[tau:1]
a_aKU
lk1 a_aKU
u_tys
tclvl 1
k_aRC[tau:1] ~ i_aRD[tau:1]
arising from a type equality k_aRC[tau:1] ~ i_aRD[tau:1]
found filled tyvar k_aRC[tau:1] :-> i_aRD[tau:1]
u_tys yields no coercion
checkExpectedKind
k_aRC[tau:1]
i_aRD[tau:1]
<i_aRD[tau:1]>_N
u_tys
tclvl 1
j_aRA[tau:1] ~ j_aRA[tau:1]
arising from a type equality j_aRA[tau:1] ~ j_aRA[tau:1]
u_tys yields no coercion
checkExpectedKind
j_aRA[tau:1]
j_aRA[tau:1]
<j_aRA[tau:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aRE[tau:1]
arising from a type equality * ~ TYPE t_aRE[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aRE[tau:1]
arising from a type equality * ~ TYPE t_aRE[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aRE[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aRE[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aRE[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aRB[tau:1]
arising from a type equality * ~ TYPE t_aRB[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aRB[tau:1]
arising from a type equality * ~ TYPE t_aRB[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aRB[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aRB[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aRB[tau:1]
<*>_N
tcExplicitTKBndrs
Hs vars: [a_aKU]
tvs: (a_aKU[sk:1] :: i_aRD[tau:1])
tcConArg 2
forall a_aKU. Ob p_aKQ a_aKU => q_aKR (f_aKS a_aKU) (g_aKT a_aKU)
lk1 Nat
lk1 (loopy) Nat
tcTyVar2a
Nat
forall i j.
(i_aKK[sk:1] -> i_aKK[sk:1] -> *)
-> (j_aKM[sk:1] -> j_aKM[sk:1] -> *)
-> (i_aKK[sk:1] -> j_aKM[sk:1])
-> (i_aKK[sk:1] -> j_aKM[sk:1])
-> *
tc_infer_args (invis) @i_aKK[sk:1]
tc_infer_args (invis) @j_aKM[sk:1]
tc_infer_args (vis)
[anon] i_aKK[sk:1] -> i_aKK[sk:1] -> *
p_aKQ
lk1 p_aKQ
u_tys
tclvl 1
k_aRt[tau:1] ~ i_aRF[tau:1] -> i_aRF[tau:1] -> *
arising from a type equality k_aRt[tau:1]
~
i_aRF[tau:1] -> i_aRF[tau:1] -> *
found filled tyvar
k_aRt[tau:1] :-> i_aRx[tau:1] -> i_aRx[tau:1] -> *
u_tys
tclvl 1
i_aRx[tau:1] ~ i_aRF[tau:1]
arising from a type equality k_aRt[tau:1]
~
i_aRF[tau:1] -> i_aRF[tau:1] -> *
found filled tyvar i_aRx[tau:1] :-> i_aRz[tau:1]
found filled tyvar i_aRz[tau:1] :-> i_aRD[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aRD[tau:1] ~ i_aRF[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aRD[tau:1] ~ i_aRF[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aRD[tau:1] := i_aRF[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aRx[tau:1] -> * ~ i_aRF[tau:1] -> *
arising from a type equality k_aRt[tau:1]
~
i_aRF[tau:1] -> i_aRF[tau:1] -> *
u_tys
tclvl 1
i_aRx[tau:1] ~ i_aRF[tau:1]
arising from a type equality k_aRt[tau:1]
~
i_aRF[tau:1] -> i_aRF[tau:1] -> *
found filled tyvar i_aRx[tau:1] :-> i_aRz[tau:1]
found filled tyvar i_aRz[tau:1] :-> i_aRD[tau:1]
found filled tyvar i_aRD[tau:1] :-> i_aRF[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aRt[tau:1]
~
i_aRF[tau:1] -> i_aRF[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aRt[tau:1]
i_aRF[tau:1] -> i_aRF[tau:1] -> *
<i_aRF[tau:1] -> i_aRF[tau:1] -> *>_N
tc_infer_args (vis)
[anon] j_aKM[sk:1] -> j_aKM[sk:1] -> *
q_aKR
lk1 q_aKR
u_tys
tclvl 1
k_aRu[tau:1] ~ j_aRG[tau:1] -> j_aRG[tau:1] -> *
arising from a type equality k_aRu[tau:1]
~
j_aRG[tau:1] -> j_aRG[tau:1] -> *
found filled tyvar
k_aRu[tau:1] :-> j_aRy[tau:1] -> j_aRy[tau:1] -> *
u_tys
tclvl 1
j_aRy[tau:1] ~ j_aRG[tau:1]
arising from a type equality k_aRu[tau:1]
~
j_aRG[tau:1] -> j_aRG[tau:1] -> *
found filled tyvar j_aRy[tau:1] :-> j_aRA[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aRA[tau:1] ~ j_aRG[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aRA[tau:1] ~ j_aRG[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aRA[tau:1] := j_aRG[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aRy[tau:1] -> * ~ j_aRG[tau:1] -> *
arising from a type equality k_aRu[tau:1]
~
j_aRG[tau:1] -> j_aRG[tau:1] -> *
u_tys
tclvl 1
j_aRy[tau:1] ~ j_aRG[tau:1]
arising from a type equality k_aRu[tau:1]
~
j_aRG[tau:1] -> j_aRG[tau:1] -> *
found filled tyvar j_aRy[tau:1] :-> j_aRA[tau:1]
found filled tyvar j_aRA[tau:1] :-> j_aRG[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aRu[tau:1]
~
j_aRG[tau:1] -> j_aRG[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aRu[tau:1]
j_aRG[tau:1] -> j_aRG[tau:1] -> *
<j_aRG[tau:1] -> j_aRG[tau:1] -> *>_N
tc_infer_args (vis)
[anon] i_aKK[sk:1] -> j_aKM[sk:1]
f_aKS
lk1 f_aKS
u_tys
tclvl 1
k_aRv[tau:1] ~ i_aRF[tau:1] -> j_aRG[tau:1]
arising from a type equality k_aRv[tau:1]
~
i_aRF[tau:1] -> j_aRG[tau:1]
found filled tyvar k_aRv[tau:1] :-> i_aRx[tau:1] -> j_aRy[tau:1]
u_tys
tclvl 1
i_aRx[tau:1] ~ i_aRF[tau:1]
arising from a type equality k_aRv[tau:1]
~
i_aRF[tau:1] -> j_aRG[tau:1]
found filled tyvar i_aRx[tau:1] :-> i_aRz[tau:1]
found filled tyvar i_aRz[tau:1] :-> i_aRD[tau:1]
found filled tyvar i_aRD[tau:1] :-> i_aRF[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aRy[tau:1] ~ j_aRG[tau:1]
arising from a type equality k_aRv[tau:1]
~
i_aRF[tau:1] -> j_aRG[tau:1]
found filled tyvar j_aRy[tau:1] :-> j_aRA[tau:1]
found filled tyvar j_aRA[tau:1] :-> j_aRG[tau:1]
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aRv[tau:1]
i_aRF[tau:1] -> j_aRG[tau:1]
<i_aRF[tau:1] -> j_aRG[tau:1]>_N
tc_infer_args (vis)
[anon] i_aKK[sk:1] -> j_aKM[sk:1]
g_aKT
lk1 g_aKT
u_tys
tclvl 1
k_aRw[tau:1] ~ i_aRF[tau:1] -> j_aRG[tau:1]
arising from a type equality k_aRw[tau:1]
~
i_aRF[tau:1] -> j_aRG[tau:1]
found filled tyvar k_aRw[tau:1] :-> i_aRz[tau:1] -> j_aRA[tau:1]
u_tys
tclvl 1
i_aRz[tau:1] ~ i_aRF[tau:1]
arising from a type equality k_aRw[tau:1]
~
i_aRF[tau:1] -> j_aRG[tau:1]
found filled tyvar i_aRz[tau:1] :-> i_aRD[tau:1]
found filled tyvar i_aRD[tau:1] :-> i_aRF[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aRA[tau:1] ~ j_aRG[tau:1]
arising from a type equality k_aRw[tau:1]
~
i_aRF[tau:1] -> j_aRG[tau:1]
found filled tyvar j_aRA[tau:1] :-> j_aRG[tau:1]
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aRw[tau:1]
i_aRF[tau:1] -> j_aRG[tau:1]
<i_aRF[tau:1] -> j_aRG[tau:1]>_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
lookupCF
Nat
Just [runNat{runNat}]
[rKl :-> [runNat{runNat}], rKy :-> [], rKC :-> [getY{getY}]]
tcExplicitTKBndrs
Hs vars: []
tvs:
tcImplicitTKBndrs
[p_aKQ, q_aKR, f_aKS, g_aKT]
[p_aKQ[sk:1], q_aKR[sk:1], f_aKS[sk:1], g_aKT[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aRH
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aRI
reportAllUnsolved }
env2
[(i_aKV, Type variable ‘i_aKV’ = i_aKV[sk:1]),
(j_aKX, Type variable ‘j_aKX’ = j_aKX[sk:1]),
(p_aKW, Type variable ‘p_aKW’ = p_aKW[sk:1]),
(q_aKY, Type variable ‘q_aKY’ = q_aKY[sk:1]),
(f_aKZ, Type variable ‘f_aKZ’ = f_aKZ[sk:1])]
lk1 Category
lk1 (loopy) Category
tcTyVar2a
Category
forall i. (i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> Constraint
tc_infer_args (invis) @i_aL2[sk:1]
tc_infer_args (vis)
[anon] i_aL2[sk:1] -> i_aL2[sk:1] -> *
p_aKW
lk1 p_aKW
u_tys
tclvl 1
i_aKV[sk:1] -> i_aKV[sk:1] -> * ~ i_aRJ[tau:1] -> i_aRJ[tau:1] -> *
arising from a type equality i_aKV[sk:1] -> i_aKV[sk:1] -> *
~
i_aRJ[tau:1] -> i_aRJ[tau:1] -> *
u_tys
tclvl 1
i_aKV[sk:1] ~ i_aRJ[tau:1]
arising from a type equality i_aKV[sk:1] -> i_aKV[sk:1] -> *
~
i_aRJ[tau:1] -> i_aRJ[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aRJ[tau:1] ~ i_aKV[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aRJ[tau:1] ~ i_aKV[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aRJ[tau:1] := i_aKV[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aKV[sk:1] -> * ~ i_aRJ[tau:1] -> *
arising from a type equality i_aKV[sk:1] -> i_aKV[sk:1] -> *
~
i_aRJ[tau:1] -> i_aRJ[tau:1] -> *
u_tys
tclvl 1
i_aKV[sk:1] ~ i_aRJ[tau:1]
arising from a type equality i_aKV[sk:1] -> i_aKV[sk:1] -> *
~
i_aRJ[tau:1] -> i_aRJ[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aKV[sk:1] -> i_aKV[sk:1] -> *
~
i_aRJ[tau:1] -> i_aRJ[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aKV[sk:1] -> i_aKV[sk:1] -> *
i_aRJ[tau:1] -> i_aRJ[tau:1] -> *
<i_aKV[sk:1] -> i_aKV[sk:1] -> *>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 Category
lk1 (loopy) Category
tcTyVar2a
Category
forall i. (i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> Constraint
tc_infer_args (invis) @i_aL2[sk:1]
tc_infer_args (vis)
[anon] i_aL2[sk:1] -> i_aL2[sk:1] -> *
q_aKY
lk1 q_aKY
u_tys
tclvl 1
j_aKX[sk:1] -> j_aKX[sk:1] -> * ~ i_aRK[tau:1] -> i_aRK[tau:1] -> *
arising from a type equality j_aKX[sk:1] -> j_aKX[sk:1] -> *
~
i_aRK[tau:1] -> i_aRK[tau:1] -> *
u_tys
tclvl 1
j_aKX[sk:1] ~ i_aRK[tau:1]
arising from a type equality j_aKX[sk:1] -> j_aKX[sk:1] -> *
~
i_aRK[tau:1] -> i_aRK[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aRK[tau:1] ~ j_aKX[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aRK[tau:1] ~ j_aKX[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aRK[tau:1] := j_aKX[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aKX[sk:1] -> * ~ i_aRK[tau:1] -> *
arising from a type equality j_aKX[sk:1] -> j_aKX[sk:1] -> *
~
i_aRK[tau:1] -> i_aRK[tau:1] -> *
u_tys
tclvl 1
j_aKX[sk:1] ~ i_aRK[tau:1]
arising from a type equality j_aKX[sk:1] -> j_aKX[sk:1] -> *
~
i_aRK[tau:1] -> i_aRK[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aKX[sk:1] -> j_aKX[sk:1] -> *
~
i_aRK[tau:1] -> i_aRK[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aKX[sk:1] -> j_aKX[sk:1] -> *
i_aRK[tau:1] -> i_aRK[tau:1] -> *
<j_aKX[sk:1] -> j_aKX[sk:1] -> *>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
env2
[(a_aL0, Type variable ‘a_aL0’ = a_aL0[sk:1]),
(b_aL1, Type variable ‘b_aL1’ = b_aL1[sk:1])]
lk1 p_aKW
tc_infer_args (vis)
[anon] i_aKV[sk:1]
a_aL0
lk1 a_aL0
u_tys
tclvl 1
k_aRL[tau:1] ~ i_aKV[sk:1]
arising from a type equality k_aRL[tau:1] ~ i_aKV[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aRL[tau:1] ~ i_aKV[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aRL[tau:1] ~ i_aKV[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aRL[tau:1] := i_aKV[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aRL[tau:1]
i_aKV[sk:1]
<i_aKV[sk:1]>_N
tc_infer_args (vis)
[anon] i_aKV[sk:1]
b_aL1
lk1 b_aL1
u_tys
tclvl 1
k_aRM[tau:1] ~ i_aKV[sk:1]
arising from a type equality k_aRM[tau:1] ~ i_aKV[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aRM[tau:1] ~ i_aKV[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aRM[tau:1] ~ i_aKV[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aRM[tau:1] := i_aKV[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aRM[tau:1]
i_aKV[sk:1]
<i_aKV[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aRN[tau:1]
arising from a type equality * ~ TYPE t_aRN[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aRN[tau:1]
arising from a type equality * ~ TYPE t_aRN[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aRN[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aRN[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aRN[tau:1]
<*>_N
lk1 q_aKY
tc_infer_args (vis)
[anon] j_aKX[sk:1]
(f_aKZ a_aL0)
lk1 f_aKZ
tc_infer_args (vis)
[anon] i_aKV[sk:1]
a_aL0
lk1 a_aL0
u_tys
tclvl 1
k_aRL[tau:1] ~ i_aKV[sk:1]
arising from a type equality k_aRL[tau:1] ~ i_aKV[sk:1]
found filled tyvar k_aRL[tau:1] :-> i_aKV[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aRL[tau:1]
i_aKV[sk:1]
<i_aKV[sk:1]>_N
u_tys
tclvl 1
j_aKX[sk:1] ~ j_aKX[sk:1]
arising from a type equality j_aKX[sk:1] ~ j_aKX[sk:1]
u_tys yields no coercion
checkExpectedKind
j_aKX[sk:1]
j_aKX[sk:1]
<j_aKX[sk:1]>_N
tc_infer_args (vis)
[anon] j_aKX[sk:1]
(f_aKZ b_aL1)
lk1 f_aKZ
tc_infer_args (vis)
[anon] i_aKV[sk:1]
b_aL1
lk1 b_aL1
u_tys
tclvl 1
k_aRM[tau:1] ~ i_aKV[sk:1]
arising from a type equality k_aRM[tau:1] ~ i_aKV[sk:1]
found filled tyvar k_aRM[tau:1] :-> i_aKV[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aRM[tau:1]
i_aKV[sk:1]
<i_aKV[sk:1]>_N
u_tys
tclvl 1
j_aKX[sk:1] ~ j_aKX[sk:1]
arising from a type equality j_aKX[sk:1] ~ j_aKX[sk:1]
u_tys yields no coercion
checkExpectedKind
j_aKX[sk:1]
j_aKX[sk:1]
<j_aKX[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aRO[tau:1]
arising from a type equality * ~ TYPE t_aRO[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aRO[tau:1]
arising from a type equality * ~ TYPE t_aRO[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aRO[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aRO[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aRO[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aL0, b_aL1]
[a_aL0[sk:1], b_aL1[sk:1]]
env2
[(i_aL2, Type variable ‘i_aL2’ = i_aL2[sk:1]),
(p_aL3, Type variable ‘p_aL3’ = p_aL3[sk:1])]
lk1 Functor
lk1 (loopy) Functor
tcTyVar2a
Functor
forall i j.
(i_aKV[sk:1] -> i_aKV[sk:1] -> *)
-> (j_aKX[sk:1] -> j_aKX[sk:1] -> *)
-> (i_aKV[sk:1] -> j_aKX[sk:1])
-> Constraint
tc_infer_args (invis) @i_aKV[sk:1]
tc_infer_args (invis) @j_aKX[sk:1]
tc_infer_args (vis)
[anon] i_aKV[sk:1] -> i_aKV[sk:1] -> *
(Op p_aL3)
lk1 Op
instantiating tybinders:
@j_aLv := j_aRR[tau:1]
@i_aLu := i_aRS[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aRS[tau:1] -> j_aRR[tau:1] -> *)
-> j_aRR[tau:1] -> i_aRS[tau:1] -> *
tc_infer_args (vis)
[anon] i_aRS[tau:1] -> j_aRR[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aRS[tau:1] -> j_aRR[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRS[tau:1] -> j_aRR[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aRS[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRS[tau:1] -> j_aRR[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aRS[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aRS[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aRS[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aRR[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRS[tau:1] -> j_aRR[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aRR[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRS[tau:1] -> j_aRR[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aRR[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aRR[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aRR[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRS[tau:1] -> j_aRR[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aRS[tau:1] -> j_aRR[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
j_aRR[tau:1] -> i_aRS[tau:1] -> *
~
i_aRP[tau:1] -> i_aRP[tau:1] -> *
arising from a type equality j_aRR[tau:1] -> i_aRS[tau:1] -> *
~
i_aRP[tau:1] -> i_aRP[tau:1] -> *
u_tys
tclvl 1
j_aRR[tau:1] ~ i_aRP[tau:1]
arising from a type equality j_aRR[tau:1] -> i_aRS[tau:1] -> *
~
i_aRP[tau:1] -> i_aRP[tau:1] -> *
found filled tyvar j_aRR[tau:1] :-> i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aRP[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aRP[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aRP[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aRS[tau:1] -> * ~ i_aRP[tau:1] -> *
arising from a type equality j_aRR[tau:1] -> i_aRS[tau:1] -> *
~
i_aRP[tau:1] -> i_aRP[tau:1] -> *
u_tys
tclvl 1
i_aRS[tau:1] ~ i_aRP[tau:1]
arising from a type equality j_aRR[tau:1] -> i_aRS[tau:1] -> *
~
i_aRP[tau:1] -> i_aRP[tau:1] -> *
found filled tyvar i_aRS[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aRR[tau:1] -> i_aRS[tau:1] -> *
~
i_aRP[tau:1] -> i_aRP[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aRR[tau:1] -> i_aRS[tau:1] -> *
i_aRP[tau:1] -> i_aRP[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j_aKX[sk:1] -> j_aKX[sk:1] -> *
(Nat p_aL3 (->))
lk1 Nat
lk1 (loopy) Nat
tcTyVar2a
Nat
forall i j.
(i_aKK[sk:1] -> i_aKK[sk:1] -> *)
-> (j_aKM[sk:1] -> j_aKM[sk:1] -> *)
-> (i_aKK[sk:1] -> j_aKM[sk:1])
-> (i_aKK[sk:1] -> j_aKM[sk:1])
-> *
tc_infer_args (invis) @i_aKK[sk:1]
tc_infer_args (invis) @j_aKM[sk:1]
tc_infer_args (vis)
[anon] i_aKK[sk:1] -> i_aKK[sk:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aRT[tau:1] -> i_aRT[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRT[tau:1] -> i_aRT[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aRT[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRT[tau:1] -> i_aRT[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aRT[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aRT[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aRT[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aRT[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRT[tau:1] -> i_aRT[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aRT[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRT[tau:1] -> i_aRT[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRT[tau:1] -> i_aRT[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aRT[tau:1] -> i_aRT[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j_aKM[sk:1] -> j_aKM[sk:1] -> *
(->)
lk1 (->)
tcTyVar2a
(->)
TYPE q -> TYPE r -> *
instantiating tybinders:
{q_1h} := q_aRV[tau:1]
{r_1i} := r_aRW[tau:1]
u_tys
tclvl 1
TYPE q_aRV[tau:1] -> TYPE r_aRW[tau:1] -> *
~
j_aRU[tau:1] -> j_aRU[tau:1] -> *
arising from a type equality TYPE q_aRV[tau:1]
-> TYPE r_aRW[tau:1] -> *
~
j_aRU[tau:1] -> j_aRU[tau:1] -> *
u_tys
tclvl 1
TYPE q_aRV[tau:1] ~ j_aRU[tau:1]
arising from a type equality TYPE q_aRV[tau:1]
-> TYPE r_aRW[tau:1] -> *
~
j_aRU[tau:1] -> j_aRU[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aRU[tau:1] ~ TYPE q_aRV[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aRU[tau:1] ~ TYPE q_aRV[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aRU[tau:1] := TYPE q_aRV[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
TYPE r_aRW[tau:1] -> * ~ j_aRU[tau:1] -> *
arising from a type equality TYPE q_aRV[tau:1]
-> TYPE r_aRW[tau:1] -> *
~
j_aRU[tau:1] -> j_aRU[tau:1] -> *
u_tys
tclvl 1
TYPE r_aRW[tau:1] ~ j_aRU[tau:1]
arising from a type equality TYPE q_aRV[tau:1]
-> TYPE r_aRW[tau:1] -> *
~
j_aRU[tau:1] -> j_aRU[tau:1] -> *
found filled tyvar j_aRU[tau:1] :-> TYPE q_aRV[tau:1]
u_tys
tclvl 1
r_aRW[tau:1] ~ q_aRV[tau:1]
arising from a type equality TYPE q_aRV[tau:1]
-> TYPE r_aRW[tau:1] -> *
~
j_aRU[tau:1] -> j_aRU[tau:1] -> *
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
r_aRW[tau:1] ~ q_aRV[tau:1]
u_tys yields no coercion
writeMetaTyVar r_aRW[tau:1] := q_aRV[tau:1]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality TYPE q_aRV[tau:1]
-> TYPE r_aRW[tau:1] -> *
~
j_aRU[tau:1] -> j_aRU[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality TYPE q_aRV[tau:1]
-> TYPE r_aRW[tau:1] -> *
~
j_aRU[tau:1] -> j_aRU[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
TYPE q -> TYPE r -> *
j_aRU[tau:1] -> j_aRU[tau:1] -> *
<TYPE q_aRV[tau:1] -> TYPE q_aRV[tau:1] -> *>_N
u_tys
tclvl 1
(i_aRT[tau:1] -> j_aRU[tau:1])
-> (i_aRT[tau:1] -> j_aRU[tau:1]) -> *
~
j_aRQ[tau:1] -> j_aRQ[tau:1] -> *
arising from a type equality (i_aRT[tau:1] -> j_aRU[tau:1])
-> (i_aRT[tau:1] -> j_aRU[tau:1]) -> *
~
j_aRQ[tau:1] -> j_aRQ[tau:1] -> *
u_tys
tclvl 1
i_aRT[tau:1] -> j_aRU[tau:1] ~ j_aRQ[tau:1]
arising from a type equality (i_aRT[tau:1] -> j_aRU[tau:1])
-> (i_aRT[tau:1] -> j_aRU[tau:1]) -> *
~
j_aRQ[tau:1] -> j_aRQ[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aRQ[tau:1] ~ i_aL2[sk:1] -> TYPE q_aRV[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aRQ[tau:1] ~ i_aL2[sk:1] -> TYPE q_aRV[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aRQ[tau:1] := i_aL2[sk:1] -> TYPE q_aRV[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
(i_aRT[tau:1] -> j_aRU[tau:1]) -> * ~ j_aRQ[tau:1] -> *
arising from a type equality (i_aRT[tau:1] -> j_aRU[tau:1])
-> (i_aRT[tau:1] -> j_aRU[tau:1]) -> *
~
j_aRQ[tau:1] -> j_aRQ[tau:1] -> *
u_tys
tclvl 1
i_aRT[tau:1] -> j_aRU[tau:1] ~ j_aRQ[tau:1]
arising from a type equality (i_aRT[tau:1] -> j_aRU[tau:1])
-> (i_aRT[tau:1] -> j_aRU[tau:1]) -> *
~
j_aRQ[tau:1] -> j_aRQ[tau:1] -> *
found filled tyvar
j_aRQ[tau:1] :-> i_aL2[sk:1] -> TYPE q_aRV[tau:1]
u_tys
tclvl 1
i_aRT[tau:1] ~ i_aL2[sk:1]
arising from a type equality (i_aRT[tau:1] -> j_aRU[tau:1])
-> (i_aRT[tau:1] -> j_aRU[tau:1]) -> *
~
j_aRQ[tau:1] -> j_aRQ[tau:1] -> *
found filled tyvar i_aRT[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aRU[tau:1] ~ TYPE q_aRV[tau:1]
arising from a type equality (i_aRT[tau:1] -> j_aRU[tau:1])
-> (i_aRT[tau:1] -> j_aRU[tau:1]) -> *
~
j_aRQ[tau:1] -> j_aRQ[tau:1] -> *
found filled tyvar j_aRU[tau:1] :-> TYPE q_aRV[tau:1]
u_tys
tclvl 1
q_aRV[tau:1] ~ q_aRV[tau:1]
arising from a type equality (i_aRT[tau:1] -> j_aRU[tau:1])
-> (i_aRT[tau:1] -> j_aRU[tau:1]) -> *
~
j_aRQ[tau:1] -> j_aRQ[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality (i_aRT[tau:1] -> j_aRU[tau:1])
-> (i_aRT[tau:1] -> j_aRU[tau:1]) -> *
~
j_aRQ[tau:1] -> j_aRQ[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality (i_aRT[tau:1] -> j_aRU[tau:1])
-> (i_aRT[tau:1] -> j_aRU[tau:1]) -> *
~
j_aRQ[tau:1] -> j_aRQ[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
(i_aRT[tau:1] -> j_aRU[tau:1])
-> (i_aRT[tau:1] -> j_aRU[tau:1]) -> *
j_aRQ[tau:1] -> j_aRQ[tau:1] -> *
<(i_aL2[sk:1] -> TYPE q_aRV[tau:1])
-> (i_aL2[sk:1] -> TYPE q_aRV[tau:1]) -> *>_N
tc_infer_args (vis)
[anon] i_aKV[sk:1] -> j_aKX[sk:1]
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aRP[tau:1] -> j_aRQ[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRP[tau:1] -> j_aRQ[tau:1]
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aRP[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRP[tau:1] -> j_aRQ[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aRQ[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRP[tau:1] -> j_aRQ[tau:1]
found filled tyvar
j_aRQ[tau:1] :-> i_aL2[sk:1] -> TYPE q_aRV[tau:1]
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aL2[sk:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRP[tau:1] -> j_aRQ[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ TYPE q_aRV[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRP[tau:1] -> j_aRQ[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ q_aRV[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRP[tau:1] -> j_aRQ[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
q_aRV[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar q_aRV[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aRP[tau:1] -> j_aRQ[tau:1]
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
env2 [(a_aL5, Type variable ‘a_aL5’ = a_aL5[sk:1])]
lk1 Ob
lk1 (loopy) Ob
instantiating tybinders: @i_aL2[sk:1] := i_aRY[tau:1]
tcTyVar2b
Ob :: forall i.
(i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> i_aL2[sk:1] -> Constraint
(i_aRY[tau:1] -> i_aRY[tau:1] -> *) -> i_aRY[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aRY[tau:1] -> i_aRY[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aRY[tau:1] -> i_aRY[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRY[tau:1] -> i_aRY[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aRY[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRY[tau:1] -> i_aRY[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aRY[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aRY[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aRY[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aRY[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRY[tau:1] -> i_aRY[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aRY[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRY[tau:1] -> i_aRY[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aRY[tau:1] -> i_aRY[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aRY[tau:1] -> i_aRY[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] i_aRY[tau:1]
a_aL5
lk1 a_aL5
u_tys
tclvl 1
k_aRX[tau:1] ~ i_aRY[tau:1]
arising from a type equality k_aRX[tau:1] ~ i_aRY[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aRX[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aRX[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aRX[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aRX[tau:1]
i_aRY[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aL5
lk1 a_aL5
u_tys
tclvl 1
k_aRX[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aRX[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aRX[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aRX[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aL5
lk1 a_aL5
u_tys
tclvl 1
k_aRX[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aRX[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aRX[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aRX[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aRZ[tau:1]
arising from a type equality * ~ TYPE t_aRZ[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aRZ[tau:1]
arising from a type equality * ~ TYPE t_aRZ[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aRZ[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aRZ[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aRZ[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aL5]
[a_aL5[sk:1]]
env2
[(b_aL6, Type variable ‘b_aL6’ = b_aL6[sk:1]),
(c_aL7, Type variable ‘c_aL7’ = c_aL7[sk:1]),
(a_aL8, Type variable ‘a_aL8’ = a_aL8[sk:1])]
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aL6
lk1 b_aL6
u_tys
tclvl 1
k_aS0[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aS0[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aS0[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aS0[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aS0[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aS0[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
c_aL7
lk1 c_aL7
u_tys
tclvl 1
k_aS1[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aS1[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aS1[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aS1[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aS1[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aS1[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aS3[tau:1]
arising from a type equality * ~ TYPE t_aS3[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aS3[tau:1]
arising from a type equality * ~ TYPE t_aS3[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aS3[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aS3[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aS3[tau:1]
<*>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aL8
lk1 a_aL8
u_tys
tclvl 1
k_aS2[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aS2[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aS2[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aS2[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aS2[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aS2[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aL6
lk1 b_aL6
u_tys
tclvl 1
k_aS0[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aS0[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aS0[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aS0[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aS5[tau:1]
arising from a type equality * ~ TYPE t_aS5[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aS5[tau:1]
arising from a type equality * ~ TYPE t_aS5[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aS5[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aS5[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aS5[tau:1]
<*>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aL8
lk1 a_aL8
u_tys
tclvl 1
k_aS2[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aS2[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aS2[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aS2[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
c_aL7
lk1 c_aL7
u_tys
tclvl 1
k_aS1[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aS1[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aS1[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aS1[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aS6[tau:1]
arising from a type equality * ~ TYPE t_aS6[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aS6[tau:1]
arising from a type equality * ~ TYPE t_aS6[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aS6[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aS6[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aS6[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aS4[tau:1]
arising from a type equality * ~ TYPE t_aS4[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aS4[tau:1]
arising from a type equality * ~ TYPE t_aS4[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aS4[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aS4[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aS4[tau:1]
<*>_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
tcImplicitTKBndrs
[b_aL6, c_aL7, a_aL8]
[b_aL6[sk:1], c_aL7[sk:1], a_aL8[sk:1]]
env2
[(a_aL9, Type variable ‘a_aL9’ = a_aL9[sk:1]),
(b_aLa, Type variable ‘b_aLa’ = b_aLa[sk:1])]
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aL9
lk1 a_aL9
u_tys
tclvl 1
k_aS7[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aS7[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aS7[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aS7[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aS7[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aS7[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLa
lk1 b_aLa
u_tys
tclvl 1
k_aS8[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aS8[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aS8[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aS8[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aS8[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aS8[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aS9[tau:1]
arising from a type equality * ~ TYPE t_aS9[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aS9[tau:1]
arising from a type equality * ~ TYPE t_aS9[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aS9[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aS9[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aS9[tau:1]
<*>_N
lk1 Dict
tcTyVar2a
Dict
Constraint -> *
tc_infer_args (vis)
[anon] Constraint
(Ob p_aL3 a_aL9)
lk1 Ob
lk1 (loopy) Ob
instantiating tybinders: @i_aL2[sk:1] := i_aSb[tau:1]
tcTyVar2b
Ob :: forall i.
(i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> i_aL2[sk:1] -> Constraint
(i_aSb[tau:1] -> i_aSb[tau:1] -> *) -> i_aSb[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aSb[tau:1] -> i_aSb[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSb[tau:1] -> i_aSb[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSb[tau:1] -> i_aSb[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSb[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSb[tau:1] -> i_aSb[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSb[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSb[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSb[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aSb[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSb[tau:1] -> i_aSb[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSb[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSb[tau:1] -> i_aSb[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSb[tau:1] -> i_aSb[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSb[tau:1] -> i_aSb[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] i_aSb[tau:1]
a_aL9
lk1 a_aL9
u_tys
tclvl 1
k_aS7[tau:1] ~ i_aSb[tau:1]
arising from a type equality k_aS7[tau:1] ~ i_aSb[tau:1]
found filled tyvar k_aS7[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aS7[tau:1]
i_aSb[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
u_tys
tclvl 1
* ~ TYPE t_aSa[tau:1]
arising from a type equality * ~ TYPE t_aSa[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSa[tau:1]
arising from a type equality * ~ TYPE t_aSa[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSa[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSa[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSa[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aL9, b_aLa]
[a_aL9[sk:1], b_aLa[sk:1]]
env2
[(a_aLb, Type variable ‘a_aLb’ = a_aLb[sk:1]),
(b_aLc, Type variable ‘b_aLc’ = b_aLc[sk:1])]
lk1 ~
tcTyVar2a
~
forall k. k -> k -> Constraint
tc_infer_args (invis) @k_aSe
tc_infer_args (vis)
[anon] k
Ob p_aL3
lk1 Ob
lk1 (loopy) Ob
instantiating tybinders: @i_aL2[sk:1] := i_aSl[tau:1]
tcTyVar2b
Ob :: forall i.
(i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> i_aL2[sk:1] -> Constraint
(i_aSl[tau:1] -> i_aSl[tau:1] -> *) -> i_aSl[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aSl[tau:1] -> i_aSl[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSl[tau:1] -> i_aSl[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSl[tau:1] -> i_aSl[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSl[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSl[tau:1] -> i_aSl[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSl[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSl[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSl[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aSl[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSl[tau:1] -> i_aSl[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSl[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSl[tau:1] -> i_aSl[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSl[tau:1] -> i_aSl[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSl[tau:1] -> i_aSl[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
i_aSl[tau:1] -> Constraint ~ k_aSk[tau:1]
arising from a type equality i_aSl[tau:1] -> Constraint
~
k_aSk[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSk[tau:1] ~ i_aL2[sk:1] -> Constraint
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSk[tau:1] ~ i_aL2[sk:1] -> Constraint
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSk[tau:1] := i_aL2[sk:1] -> Constraint
u_tys yields no coercion
checkExpectedKind
i_aSl[tau:1] -> Constraint
k_aSk[tau:1]
<i_aL2[sk:1] -> Constraint>_N
tc_infer_args (vis)
[anon] k
Vacuous p_aL3
lk1 Vacuous
tcTyVar2a
Vacuous
forall i. (i -> i -> *) -> i -> Constraint
tc_infer_args (invis) @i_aLr
tc_infer_args (vis)
[anon] i -> i -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSm[tau:1] -> i_aSm[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSm[tau:1] -> i_aSm[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSm[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSm[tau:1] -> i_aSm[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSm[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSm[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSm[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aSm[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSm[tau:1] -> i_aSm[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSm[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSm[tau:1] -> i_aSm[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSm[tau:1] -> i_aSm[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSm[tau:1] -> i_aSm[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
i_aSm[tau:1] -> Constraint ~ k_aSk[tau:1]
arising from a type equality i_aSm[tau:1] -> Constraint
~
k_aSk[tau:1]
found filled tyvar k_aSk[tau:1] :-> i_aL2[sk:1] -> Constraint
u_tys
tclvl 1
i_aSm[tau:1] ~ i_aL2[sk:1]
arising from a type equality i_aSm[tau:1] -> Constraint
~
k_aSk[tau:1]
found filled tyvar i_aSm[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality i_aSm[tau:1] -> Constraint
~
k_aSk[tau:1]
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aSm[tau:1] -> Constraint
k_aSk[tau:1]
<i_aL2[sk:1] -> Constraint>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLb
lk1 a_aLb
u_tys
tclvl 1
k_aSc[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSc[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSc[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSc[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSc[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSc[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLc
lk1 b_aLc
u_tys
tclvl 1
k_aSd[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSd[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSd[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSd[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSd[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSd[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aSo[tau:1]
arising from a type equality * ~ TYPE t_aSo[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSo[tau:1]
arising from a type equality * ~ TYPE t_aSo[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSo[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSo[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSo[tau:1]
<*>_N
lk1 Dict
tcTyVar2a
Dict
Constraint -> *
tc_infer_args (vis)
[anon] Constraint
(Ob p_aL3 a_aLb)
lk1 Ob
lk1 (loopy) Ob
instantiating tybinders: @i_aL2[sk:1] := i_aSq[tau:1]
tcTyVar2b
Ob :: forall i.
(i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> i_aL2[sk:1] -> Constraint
(i_aSq[tau:1] -> i_aSq[tau:1] -> *) -> i_aSq[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aSq[tau:1] -> i_aSq[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSq[tau:1] -> i_aSq[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSq[tau:1] -> i_aSq[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSq[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSq[tau:1] -> i_aSq[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSq[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSq[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSq[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aSq[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSq[tau:1] -> i_aSq[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSq[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSq[tau:1] -> i_aSq[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSq[tau:1] -> i_aSq[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSq[tau:1] -> i_aSq[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] i_aSq[tau:1]
a_aLb
lk1 a_aLb
u_tys
tclvl 1
k_aSc[tau:1] ~ i_aSq[tau:1]
arising from a type equality k_aSc[tau:1] ~ i_aSq[tau:1]
found filled tyvar k_aSc[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSc[tau:1]
i_aSq[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
u_tys
tclvl 1
* ~ TYPE t_aSp[tau:1]
arising from a type equality * ~ TYPE t_aSp[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSp[tau:1]
arising from a type equality * ~ TYPE t_aSp[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSp[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSp[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSp[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aSn[tau:1]
arising from a type equality * ~ TYPE t_aSn[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSn[tau:1]
arising from a type equality * ~ TYPE t_aSn[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSn[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSn[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSn[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aLb, b_aLc]
[a_aLb[sk:1], b_aLc[sk:1]]
env2
[(a_aLd, Type variable ‘a_aLd’ = a_aLd[sk:1]),
(b_aLe, Type variable ‘b_aLe’ = b_aLe[sk:1])]
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLd
lk1 a_aLd
u_tys
tclvl 1
k_aSr[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSr[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSr[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSr[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSr[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSr[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLe
lk1 b_aLe
u_tys
tclvl 1
k_aSs[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSs[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSs[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSs[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSs[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSs[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aSt[tau:1]
arising from a type equality * ~ TYPE t_aSt[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSt[tau:1]
arising from a type equality * ~ TYPE t_aSt[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSt[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSt[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSt[tau:1]
<*>_N
lk1 Dict
tcTyVar2a
Dict
Constraint -> *
tc_infer_args (vis)
[anon] Constraint
(Ob p_aL3 b_aLe)
lk1 Ob
lk1 (loopy) Ob
instantiating tybinders: @i_aL2[sk:1] := i_aSv[tau:1]
tcTyVar2b
Ob :: forall i.
(i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> i_aL2[sk:1] -> Constraint
(i_aSv[tau:1] -> i_aSv[tau:1] -> *) -> i_aSv[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aSv[tau:1] -> i_aSv[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSv[tau:1] -> i_aSv[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSv[tau:1] -> i_aSv[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSv[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSv[tau:1] -> i_aSv[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSv[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSv[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSv[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aSv[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSv[tau:1] -> i_aSv[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSv[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSv[tau:1] -> i_aSv[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSv[tau:1] -> i_aSv[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSv[tau:1] -> i_aSv[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] i_aSv[tau:1]
b_aLe
lk1 b_aLe
u_tys
tclvl 1
k_aSs[tau:1] ~ i_aSv[tau:1]
arising from a type equality k_aSs[tau:1] ~ i_aSv[tau:1]
found filled tyvar k_aSs[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSs[tau:1]
i_aSv[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
u_tys
tclvl 1
* ~ TYPE t_aSu[tau:1]
arising from a type equality * ~ TYPE t_aSu[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSu[tau:1]
arising from a type equality * ~ TYPE t_aSu[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSu[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSu[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSu[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aLd, b_aLe]
[a_aLd[sk:1], b_aLe[sk:1]]
env2
[(a_aLf, Type variable ‘a_aLf’ = a_aLf[sk:1]),
(b_aLg, Type variable ‘b_aLg’ = b_aLg[sk:1])]
lk1 ~
tcTyVar2a
~
forall k. k -> k -> Constraint
tc_infer_args (invis) @k_aSe
tc_infer_args (vis)
[anon] k
Ob p_aL3
lk1 Ob
lk1 (loopy) Ob
instantiating tybinders: @i_aL2[sk:1] := i_aSz[tau:1]
tcTyVar2b
Ob :: forall i.
(i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> i_aL2[sk:1] -> Constraint
(i_aSz[tau:1] -> i_aSz[tau:1] -> *) -> i_aSz[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aSz[tau:1] -> i_aSz[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSz[tau:1] -> i_aSz[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSz[tau:1] -> i_aSz[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSz[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSz[tau:1] -> i_aSz[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSz[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSz[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSz[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aSz[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSz[tau:1] -> i_aSz[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSz[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSz[tau:1] -> i_aSz[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSz[tau:1] -> i_aSz[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSz[tau:1] -> i_aSz[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
i_aSz[tau:1] -> Constraint ~ k_aSy[tau:1]
arising from a type equality i_aSz[tau:1] -> Constraint
~
k_aSy[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSy[tau:1] ~ i_aL2[sk:1] -> Constraint
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSy[tau:1] ~ i_aL2[sk:1] -> Constraint
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSy[tau:1] := i_aL2[sk:1] -> Constraint
u_tys yields no coercion
checkExpectedKind
i_aSz[tau:1] -> Constraint
k_aSy[tau:1]
<i_aL2[sk:1] -> Constraint>_N
tc_infer_args (vis)
[anon] k
Vacuous p_aL3
lk1 Vacuous
tcTyVar2a
Vacuous
forall i. (i -> i -> *) -> i -> Constraint
tc_infer_args (invis) @i_aLr
tc_infer_args (vis)
[anon] i -> i -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSA[tau:1] -> i_aSA[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSA[tau:1] -> i_aSA[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSA[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSA[tau:1] -> i_aSA[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSA[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSA[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSA[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aSA[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSA[tau:1] -> i_aSA[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSA[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSA[tau:1] -> i_aSA[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSA[tau:1] -> i_aSA[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSA[tau:1] -> i_aSA[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
i_aSA[tau:1] -> Constraint ~ k_aSy[tau:1]
arising from a type equality i_aSA[tau:1] -> Constraint
~
k_aSy[tau:1]
found filled tyvar k_aSy[tau:1] :-> i_aL2[sk:1] -> Constraint
u_tys
tclvl 1
i_aSA[tau:1] ~ i_aL2[sk:1]
arising from a type equality i_aSA[tau:1] -> Constraint
~
k_aSy[tau:1]
found filled tyvar i_aSA[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality i_aSA[tau:1] -> Constraint
~
k_aSy[tau:1]
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aSA[tau:1] -> Constraint
k_aSy[tau:1]
<i_aL2[sk:1] -> Constraint>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLf
lk1 a_aLf
u_tys
tclvl 1
k_aSw[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSw[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSw[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSw[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSw[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSw[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLg
lk1 b_aLg
u_tys
tclvl 1
k_aSx[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSx[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSx[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSx[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSx[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSx[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aSC[tau:1]
arising from a type equality * ~ TYPE t_aSC[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSC[tau:1]
arising from a type equality * ~ TYPE t_aSC[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSC[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSC[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSC[tau:1]
<*>_N
lk1 Dict
tcTyVar2a
Dict
Constraint -> *
tc_infer_args (vis)
[anon] Constraint
(Ob p_aL3 b_aLg)
lk1 Ob
lk1 (loopy) Ob
instantiating tybinders: @i_aL2[sk:1] := i_aSE[tau:1]
tcTyVar2b
Ob :: forall i.
(i_aL2[sk:1] -> i_aL2[sk:1] -> *) -> i_aL2[sk:1] -> Constraint
(i_aSE[tau:1] -> i_aSE[tau:1] -> *) -> i_aSE[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aSE[tau:1] -> i_aSE[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSE[tau:1] -> i_aSE[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSE[tau:1] -> i_aSE[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSE[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSE[tau:1] -> i_aSE[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSE[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSE[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSE[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aSE[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSE[tau:1] -> i_aSE[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSE[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSE[tau:1] -> i_aSE[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSE[tau:1] -> i_aSE[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSE[tau:1] -> i_aSE[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] i_aSE[tau:1]
b_aLg
lk1 b_aLg
u_tys
tclvl 1
k_aSx[tau:1] ~ i_aSE[tau:1]
arising from a type equality k_aSx[tau:1] ~ i_aSE[tau:1]
found filled tyvar k_aSx[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSx[tau:1]
i_aSE[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
u_tys
tclvl 1
* ~ TYPE t_aSD[tau:1]
arising from a type equality * ~ TYPE t_aSD[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSD[tau:1]
arising from a type equality * ~ TYPE t_aSD[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSD[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSD[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSD[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aSB[tau:1]
arising from a type equality * ~ TYPE t_aSB[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSB[tau:1]
arising from a type equality * ~ TYPE t_aSB[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSB[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSB[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSB[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aLf, b_aLg]
[a_aLf[sk:1], b_aLg[sk:1]]
env2
[(b_aLh, Type variable ‘b_aLh’ = b_aLh[sk:1]),
(a_aLi, Type variable ‘a_aLi’ = a_aLi[sk:1])]
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLh
lk1 b_aLh
u_tys
tclvl 1
k_aSF[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSF[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSF[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSF[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSF[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSF[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLi
lk1 a_aLi
u_tys
tclvl 1
k_aSG[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSG[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSG[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSG[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSG[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSG[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aSH[tau:1]
arising from a type equality * ~ TYPE t_aSH[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSH[tau:1]
arising from a type equality * ~ TYPE t_aSH[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSH[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSH[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSH[tau:1]
<*>_N
lk1 Op
instantiating tybinders:
@j_aLv := j_aSJ[tau:1]
@i_aLu := i_aSK[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aSK[tau:1] -> j_aSJ[tau:1] -> *)
-> j_aSJ[tau:1] -> i_aSK[tau:1] -> *
tc_infer_args (vis)
[anon] i_aSK[tau:1] -> j_aSJ[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSK[tau:1] -> j_aSJ[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSK[tau:1] -> j_aSJ[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSK[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSK[tau:1] -> j_aSJ[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSK[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSK[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSK[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aSJ[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSK[tau:1] -> j_aSJ[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aSJ[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSK[tau:1] -> j_aSJ[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aSJ[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aSJ[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aSJ[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSK[tau:1] -> j_aSJ[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSK[tau:1] -> j_aSJ[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j_aSJ[tau:1]
a_aLi
lk1 a_aLi
u_tys
tclvl 1
k_aSG[tau:1] ~ j_aSJ[tau:1]
arising from a type equality k_aSG[tau:1] ~ j_aSJ[tau:1]
found filled tyvar k_aSG[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSG[tau:1]
j_aSJ[tau:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aSK[tau:1]
b_aLh
lk1 b_aLh
u_tys
tclvl 1
k_aSF[tau:1] ~ i_aSK[tau:1]
arising from a type equality k_aSF[tau:1] ~ i_aSK[tau:1]
found filled tyvar k_aSF[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSF[tau:1]
i_aSK[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aSI[tau:1]
arising from a type equality * ~ TYPE t_aSI[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSI[tau:1]
arising from a type equality * ~ TYPE t_aSI[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSI[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSI[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSI[tau:1]
<*>_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
tcImplicitTKBndrs
[b_aLh, a_aLi]
[b_aLh[sk:1], a_aLi[sk:1]]
env2
[(b_aLj, Type variable ‘b_aLj’ = b_aLj[sk:1]),
(a_aLk, Type variable ‘a_aLk’ = a_aLk[sk:1])]
lk1 ~
tcTyVar2a
~
forall k. k -> k -> Constraint
tc_infer_args (invis) @k_aSe
tc_infer_args (vis)
[anon] k
Op p_aL3
lk1 Op
instantiating tybinders:
@j_aLv := j_aSO[tau:1]
@i_aLu := i_aSP[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aSP[tau:1] -> j_aSO[tau:1] -> *)
-> j_aSO[tau:1] -> i_aSP[tau:1] -> *
tc_infer_args (vis)
[anon] i_aSP[tau:1] -> j_aSO[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSP[tau:1] -> j_aSO[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSP[tau:1] -> j_aSO[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSP[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSP[tau:1] -> j_aSO[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSP[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSP[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSP[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aSO[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSP[tau:1] -> j_aSO[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aSO[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSP[tau:1] -> j_aSO[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aSO[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aSO[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aSO[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSP[tau:1] -> j_aSO[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSP[tau:1] -> j_aSO[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
j_aSO[tau:1] -> i_aSP[tau:1] -> * ~ k_aSN[tau:1]
arising from a type equality j_aSO[tau:1] -> i_aSP[tau:1] -> *
~
k_aSN[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSN[tau:1] ~ i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSN[tau:1] ~ i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSN[tau:1] := i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys yields no coercion
checkExpectedKind
j_aSO[tau:1] -> i_aSP[tau:1] -> *
k_aSN[tau:1]
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] k
Y p_aL3
lk1 Y
tcTyVar2a
Y
forall j i. (i -> j -> *) -> j -> i -> *
tc_infer_args (invis) @j_aLA
tc_infer_args (invis) @i_aLz
tc_infer_args (vis)
[anon] i -> j -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSR[tau:1] -> j_aSQ[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSR[tau:1] -> j_aSQ[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSR[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSR[tau:1] -> j_aSQ[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSR[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSR[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSR[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aSQ[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSR[tau:1] -> j_aSQ[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aSQ[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSR[tau:1] -> j_aSQ[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aSQ[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aSQ[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aSQ[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSR[tau:1] -> j_aSQ[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSR[tau:1] -> j_aSQ[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
j_aSQ[tau:1] -> i_aSR[tau:1] -> * ~ k_aSN[tau:1]
arising from a type equality j_aSQ[tau:1] -> i_aSR[tau:1] -> *
~
k_aSN[tau:1]
found filled tyvar k_aSN[tau:1] :-> i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys
tclvl 1
j_aSQ[tau:1] ~ i_aL2[sk:1]
arising from a type equality j_aSQ[tau:1] -> i_aSR[tau:1] -> *
~
k_aSN[tau:1]
found filled tyvar j_aSQ[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aSR[tau:1] -> * ~ i_aL2[sk:1] -> *
arising from a type equality j_aSQ[tau:1] -> i_aSR[tau:1] -> *
~
k_aSN[tau:1]
u_tys
tclvl 1
i_aSR[tau:1] ~ i_aL2[sk:1]
arising from a type equality j_aSQ[tau:1] -> i_aSR[tau:1] -> *
~
k_aSN[tau:1]
found filled tyvar i_aSR[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aSQ[tau:1] -> i_aSR[tau:1] -> *
~
k_aSN[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality j_aSQ[tau:1] -> i_aSR[tau:1] -> *
~
k_aSN[tau:1]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aSQ[tau:1] -> i_aSR[tau:1] -> *
k_aSN[tau:1]
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLj
lk1 b_aLj
u_tys
tclvl 1
k_aSL[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSL[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSL[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSL[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSL[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSL[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLk
lk1 a_aLk
u_tys
tclvl 1
k_aSM[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSM[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSM[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSM[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSM[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSM[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aST[tau:1]
arising from a type equality * ~ TYPE t_aST[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aST[tau:1]
arising from a type equality * ~ TYPE t_aST[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aST[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aST[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aST[tau:1]
<*>_N
lk1 Op
instantiating tybinders:
@j_aLv := j_aSV[tau:1]
@i_aLu := i_aSW[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aSW[tau:1] -> j_aSV[tau:1] -> *)
-> j_aSV[tau:1] -> i_aSW[tau:1] -> *
tc_infer_args (vis)
[anon] i_aSW[tau:1] -> j_aSV[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aSW[tau:1] -> j_aSV[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSW[tau:1] -> j_aSV[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aSW[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSW[tau:1] -> j_aSV[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aSW[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aSW[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aSW[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aSV[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSW[tau:1] -> j_aSV[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aSV[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSW[tau:1] -> j_aSV[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aSV[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aSV[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aSV[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aSW[tau:1] -> j_aSV[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aSW[tau:1] -> j_aSV[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j_aSV[tau:1]
a_aLk
lk1 a_aLk
u_tys
tclvl 1
k_aSM[tau:1] ~ j_aSV[tau:1]
arising from a type equality k_aSM[tau:1] ~ j_aSV[tau:1]
found filled tyvar k_aSM[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSM[tau:1]
j_aSV[tau:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aSW[tau:1]
b_aLj
lk1 b_aLj
u_tys
tclvl 1
k_aSL[tau:1] ~ i_aSW[tau:1]
arising from a type equality k_aSL[tau:1] ~ i_aSW[tau:1]
found filled tyvar k_aSL[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSL[tau:1]
i_aSW[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aSU[tau:1]
arising from a type equality * ~ TYPE t_aSU[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSU[tau:1]
arising from a type equality * ~ TYPE t_aSU[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSU[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSU[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSU[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aSS[tau:1]
arising from a type equality * ~ TYPE t_aSS[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSS[tau:1]
arising from a type equality * ~ TYPE t_aSS[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSS[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSS[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSS[tau:1]
<*>_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
tcImplicitTKBndrs
[b_aLj, a_aLk]
[b_aLj[sk:1], a_aLk[sk:1]]
env2
[(b_aLl, Type variable ‘b_aLl’ = b_aLl[sk:1]),
(a_aLm, Type variable ‘a_aLm’ = a_aLm[sk:1])]
lk1 Op
instantiating tybinders:
@j_aLv := j_aT1[tau:1]
@i_aLu := i_aT2[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aT2[tau:1] -> j_aT1[tau:1] -> *)
-> j_aT1[tau:1] -> i_aT2[tau:1] -> *
tc_infer_args (vis)
[anon] i_aT2[tau:1] -> j_aT1[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aT2[tau:1] -> j_aT1[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT2[tau:1] -> j_aT1[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aT2[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT2[tau:1] -> j_aT1[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aT2[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aT2[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aT2[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aT1[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT2[tau:1] -> j_aT1[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aT1[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT2[tau:1] -> j_aT1[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aT1[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aT1[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aT1[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT2[tau:1] -> j_aT1[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aT2[tau:1] -> j_aT1[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j_aT1[tau:1]
b_aLl
lk1 b_aLl
u_tys
tclvl 1
k_aSX[tau:1] ~ j_aT1[tau:1]
arising from a type equality k_aSX[tau:1] ~ j_aT1[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSX[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSX[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSX[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSX[tau:1]
j_aT1[tau:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aT2[tau:1]
a_aLm
lk1 a_aLm
u_tys
tclvl 1
k_aSY[tau:1] ~ i_aT2[tau:1]
arising from a type equality k_aSY[tau:1] ~ i_aT2[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aSY[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aSY[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aSY[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSY[tau:1]
i_aT2[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aSZ[tau:1]
arising from a type equality * ~ TYPE t_aSZ[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aSZ[tau:1]
arising from a type equality * ~ TYPE t_aSZ[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aSZ[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aSZ[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aSZ[tau:1]
<*>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLm
lk1 a_aLm
u_tys
tclvl 1
k_aSY[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSY[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aSY[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSY[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLl
lk1 b_aLl
u_tys
tclvl 1
k_aSX[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aSX[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aSX[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aSX[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aT0[tau:1]
arising from a type equality * ~ TYPE t_aT0[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aT0[tau:1]
arising from a type equality * ~ TYPE t_aT0[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aT0[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aT0[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aT0[tau:1]
<*>_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
tcImplicitTKBndrs
[b_aLl, a_aLm]
[b_aLl[sk:1], a_aLm[sk:1]]
env2
[(b_aLn, Type variable ‘b_aLn’ = b_aLn[sk:1]),
(a_aLo, Type variable ‘a_aLo’ = a_aLo[sk:1])]
lk1 ~
tcTyVar2a
~
forall k. k -> k -> Constraint
tc_infer_args (invis) @k_aSe
tc_infer_args (vis)
[anon] k
Op p_aL3
lk1 Op
instantiating tybinders:
@j_aLv := j_aT6[tau:1]
@i_aLu := i_aT7[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aT7[tau:1] -> j_aT6[tau:1] -> *)
-> j_aT6[tau:1] -> i_aT7[tau:1] -> *
tc_infer_args (vis)
[anon] i_aT7[tau:1] -> j_aT6[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aT7[tau:1] -> j_aT6[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT7[tau:1] -> j_aT6[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aT7[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT7[tau:1] -> j_aT6[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aT7[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aT7[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aT7[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aT6[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT7[tau:1] -> j_aT6[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aT6[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT7[tau:1] -> j_aT6[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aT6[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aT6[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aT6[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT7[tau:1] -> j_aT6[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aT7[tau:1] -> j_aT6[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
j_aT6[tau:1] -> i_aT7[tau:1] -> * ~ k_aT5[tau:1]
arising from a type equality j_aT6[tau:1] -> i_aT7[tau:1] -> *
~
k_aT5[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aT5[tau:1] ~ i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aT5[tau:1] ~ i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aT5[tau:1] := i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys yields no coercion
checkExpectedKind
j_aT6[tau:1] -> i_aT7[tau:1] -> *
k_aT5[tau:1]
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] k
Y p_aL3
lk1 Y
tcTyVar2a
Y
forall j i. (i -> j -> *) -> j -> i -> *
tc_infer_args (invis) @j_aLA
tc_infer_args (invis) @i_aLz
tc_infer_args (vis)
[anon] i -> j -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aT9[tau:1] -> j_aT8[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT9[tau:1] -> j_aT8[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aT9[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT9[tau:1] -> j_aT8[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aT9[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aT9[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aT9[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aT8[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT9[tau:1] -> j_aT8[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aT8[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT9[tau:1] -> j_aT8[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aT8[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aT8[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aT8[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aT9[tau:1] -> j_aT8[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aT9[tau:1] -> j_aT8[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
j_aT8[tau:1] -> i_aT9[tau:1] -> * ~ k_aT5[tau:1]
arising from a type equality j_aT8[tau:1] -> i_aT9[tau:1] -> *
~
k_aT5[tau:1]
found filled tyvar k_aT5[tau:1] :-> i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys
tclvl 1
j_aT8[tau:1] ~ i_aL2[sk:1]
arising from a type equality j_aT8[tau:1] -> i_aT9[tau:1] -> *
~
k_aT5[tau:1]
found filled tyvar j_aT8[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aT9[tau:1] -> * ~ i_aL2[sk:1] -> *
arising from a type equality j_aT8[tau:1] -> i_aT9[tau:1] -> *
~
k_aT5[tau:1]
u_tys
tclvl 1
i_aT9[tau:1] ~ i_aL2[sk:1]
arising from a type equality j_aT8[tau:1] -> i_aT9[tau:1] -> *
~
k_aT5[tau:1]
found filled tyvar i_aT9[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aT8[tau:1] -> i_aT9[tau:1] -> *
~
k_aT5[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality j_aT8[tau:1] -> i_aT9[tau:1] -> *
~
k_aT5[tau:1]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aT8[tau:1] -> i_aT9[tau:1] -> *
k_aT5[tau:1]
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 Op
instantiating tybinders:
@j_aLv := j_aTd[tau:1]
@i_aLu := i_aTe[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aTe[tau:1] -> j_aTd[tau:1] -> *)
-> j_aTd[tau:1] -> i_aTe[tau:1] -> *
tc_infer_args (vis)
[anon] i_aTe[tau:1] -> j_aTd[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aTe[tau:1] -> j_aTd[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aTe[tau:1] -> j_aTd[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aTe[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aTe[tau:1] -> j_aTd[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aTe[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aTe[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aTe[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aTd[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aTe[tau:1] -> j_aTd[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aTd[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aTe[tau:1] -> j_aTd[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aTd[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aTd[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aTd[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aTe[tau:1] -> j_aTd[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aTe[tau:1] -> j_aTd[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j_aTd[tau:1]
b_aLn
lk1 b_aLn
u_tys
tclvl 1
k_aT3[tau:1] ~ j_aTd[tau:1]
arising from a type equality k_aT3[tau:1] ~ j_aTd[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aT3[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aT3[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aT3[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aT3[tau:1]
j_aTd[tau:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aTe[tau:1]
a_aLo
lk1 a_aLo
u_tys
tclvl 1
k_aT4[tau:1] ~ i_aTe[tau:1]
arising from a type equality k_aT4[tau:1] ~ i_aTe[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aT4[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aT4[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aT4[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aT4[tau:1]
i_aTe[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aTb[tau:1]
arising from a type equality * ~ TYPE t_aTb[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aTb[tau:1]
arising from a type equality * ~ TYPE t_aTb[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aTb[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aTb[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aTb[tau:1]
<*>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLo
lk1 a_aLo
u_tys
tclvl 1
k_aT4[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aT4[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aT4[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aT4[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLn
lk1 b_aLn
u_tys
tclvl 1
k_aT3[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aT3[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aT3[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aT3[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aTc[tau:1]
arising from a type equality * ~ TYPE t_aTc[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aTc[tau:1]
arising from a type equality * ~ TYPE t_aTc[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aTc[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aTc[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aTc[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aTa[tau:1]
arising from a type equality * ~ TYPE t_aTa[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aTa[tau:1]
arising from a type equality * ~ TYPE t_aTa[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aTa[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aTa[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aTa[tau:1]
<*>_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
tcImplicitTKBndrs
[b_aLn, a_aLo]
[b_aLn[sk:1], a_aLo[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aTf
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aTg
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [] dv_tvs = []}
[]
quantifyTyVars
globals: []
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
Generalise kind
Nat
[@i_aKK[sk:1], @j_aKM[sk:1], p_aKL[sk:1], q_aKN[sk:1], f_aKO[sk:1],
g_aKP[sk:1]]
[]
[@i_aKK[sk:1], @j_aKM[sk:1], p_aKL[sk:1], q_aKN[sk:1], f_aKO[sk:1],
g_aKP[sk:1]]
*
[@i_aKK, @j_aKM, p_aKL, q_aKN, f_aKO, g_aKP]
*
[i_aKK[sk:1], j_aKM[sk:1], p_aKL[sk:1], q_aKN[sk:1], f_aKO[sk:1],
g_aKP[sk:1]]
[i_aKK[sk:1], j_aKM[sk:1], p_aKL[sk:1], q_aKN[sk:1], f_aKO[sk:1],
g_aKP[sk:1]]
quantifyZonkedTyVars
DV {dv_kvs = [] dv_tvs = []}
[]
quantifyTyVars
globals: []
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
Generalise kind
Functor
[@i_aKV[sk:1], @j_aKX[sk:1], p_aKW[sk:1], q_aKY[sk:1], f_aKZ[sk:1]]
[]
[@i_aKV[sk:1], @j_aKX[sk:1], p_aKW[sk:1], q_aKY[sk:1], f_aKZ[sk:1]]
Constraint
[@i_aKV, @j_aKX, p_aKW, q_aKY, f_aKZ]
Constraint
[i_aKV[sk:1], j_aKX[sk:1], p_aKW[sk:1], q_aKY[sk:1], f_aKZ[sk:1]]
[i_aKV[sk:1], j_aKX[sk:1], p_aKW[sk:1], q_aKY[sk:1], f_aKZ[sk:1]]
quantifyZonkedTyVars
DV {dv_kvs = [] dv_tvs = []}
[]
quantifyTyVars
globals: []
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
Generalise kind
Category
[@i_aL2[sk:1], p_aL3[sk:1]]
[]
[@i_aL2[sk:1], p_aL3[sk:1]]
Constraint
[@i_aL2, p_aL3]
Constraint
[i_aL2[sk:1], p_aL3[sk:1]]
[i_aL2[sk:1], p_aL3[sk:1]]
quantifyZonkedTyVars
DV {dv_kvs = [] dv_tvs = []}
[]
quantifyTyVars
globals: []
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
Generalise kind
Ob
[@i_aL2[sk:1], p_aL3[sk:1]]
[]
[@i_aL2[sk:1], p_aL3[sk:1]]
i_aL2[sk:1] -> Constraint
[@i_aL2, p_aL3]
i -> Constraint
[i_aL2[sk:1], p_aL3[sk:1]]
[p_aL3[sk:1]]
kcTyClGroup result
Nat :: forall i j.
(i -> i -> *) -> (j -> j -> *) -> (i -> j) -> (i -> j) -> *
Functor :: forall i j.
(i -> i -> *) -> (j -> j -> *) -> (i -> j) -> Constraint
Category :: forall i. (i -> i -> *) -> Constraint
Ob :: forall i. (i -> i -> *) -> i -> Constraint
tcTyAndCl generalized kinds
(Nat, [@i_aKK, @j_aKM, p_aKL, q_aKN, f_aKO, g_aKP], *)
(Functor, [@i_aKV, @j_aKX, p_aKW, q_aKY, f_aKZ], Constraint)
(Category, [@i_aL2, p_aL3], Constraint)
(Ob, [@i_aL2, p_aL3], i -> Constraint)
txExtendKindEnv
[(Nat, ATcTyCon Nat), (Functor, ATcTyCon Functor),
(Category, ATcTyCon Category), (Ob, ATcTyCon Ob)]
tcTyAndCl-x
data Nat (p_aKL :: i_aKK -> i_aKK -> *) (q_aKN :: j_aKM
-> j_aKM -> *) (f_aKO :: i_aKK
-> j_aKM) (g_aKP :: i_aKK
-> j_aKM)
where
Nat :: (Functor p_aKQ q_aKR f_aKS, Functor p_aKQ q_aKR g_aKT) =>
{runNat :: forall a_aKU.
Ob p_aKQ a_aKU => q_aKR (f_aKS a_aKU) (g_aKT a_aKU)}
-> Nat p_aKQ q_aKR f_aKS g_aKT
env2
[(i_aKK, Type variable ‘i_aKK’ = i_aKK[sk:1]),
(j_aKM, Type variable ‘j_aKM’ = j_aKM[sk:1]),
(p_aKL, Type variable ‘p_aKL’ = p_aKL[sk:1]),
(q_aKN, Type variable ‘q_aKN’ = q_aKN[sk:1]),
(f_aKO, Type variable ‘f_aKO’ = f_aKO[sk:1]),
(g_aKP, Type variable ‘g_aKP’ = g_aKP[sk:1])]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aTi
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aTj
reportAllUnsolved }
tcConDecl 1 [Nat]
env2
[(p_aKQ, Type variable ‘p_aKQ’ = p_aKQ[sk:1]),
(q_aKR, Type variable ‘q_aKR’ = q_aKR[sk:1]),
(f_aKS, Type variable ‘f_aKS’ = f_aKS[sk:1]),
(g_aKT, Type variable ‘g_aKT’ = g_aKT[sk:1])]
lk1 Functor
tcTyVar2a
Functor
forall i j.
(i -> i -> *) -> (j -> j -> *) -> (i -> j) -> Constraint
tc_infer_args (invis) @i_aKV
tc_infer_args (invis) @j_aKX
tc_infer_args (vis)
[anon] i -> i -> *
p_aKQ
lk1 p_aKQ
u_tys
tclvl 1
k_aTk[tau:1] ~ i_aTo[tau:1] -> i_aTo[tau:1] -> *
arising from a type equality k_aTk[tau:1]
~
i_aTo[tau:1] -> i_aTo[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aTk[tau:1] ~ i_aTo[tau:1] -> i_aTo[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aTk[tau:1] ~ i_aTo[tau:1] -> i_aTo[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aTk[tau:1] := i_aTo[tau:1] -> i_aTo[tau:1] -> *
u_tys yields no coercion
checkExpectedKind
k_aTk[tau:1]
i_aTo[tau:1] -> i_aTo[tau:1] -> *
<i_aTo[tau:1] -> i_aTo[tau:1] -> *>_N
tc_infer_args (vis)
[anon] j -> j -> *
q_aKR
lk1 q_aKR
u_tys
tclvl 1
k_aTl[tau:1] ~ j_aTp[tau:1] -> j_aTp[tau:1] -> *
arising from a type equality k_aTl[tau:1]
~
j_aTp[tau:1] -> j_aTp[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aTl[tau:1] ~ j_aTp[tau:1] -> j_aTp[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aTl[tau:1] ~ j_aTp[tau:1] -> j_aTp[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aTl[tau:1] := j_aTp[tau:1] -> j_aTp[tau:1] -> *
u_tys yields no coercion
checkExpectedKind
k_aTl[tau:1]
j_aTp[tau:1] -> j_aTp[tau:1] -> *
<j_aTp[tau:1] -> j_aTp[tau:1] -> *>_N
tc_infer_args (vis)
[anon] i -> j
f_aKS
lk1 f_aKS
u_tys
tclvl 1
k_aTm[tau:1] ~ i_aTo[tau:1] -> j_aTp[tau:1]
arising from a type equality k_aTm[tau:1]
~
i_aTo[tau:1] -> j_aTp[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aTm[tau:1] ~ i_aTo[tau:1] -> j_aTp[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aTm[tau:1] ~ i_aTo[tau:1] -> j_aTp[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aTm[tau:1] := i_aTo[tau:1] -> j_aTp[tau:1]
u_tys yields no coercion
checkExpectedKind
k_aTm[tau:1]
i_aTo[tau:1] -> j_aTp[tau:1]
<i_aTo[tau:1] -> j_aTp[tau:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 Functor
tcTyVar2a
Functor
forall i j.
(i -> i -> *) -> (j -> j -> *) -> (i -> j) -> Constraint
tc_infer_args (invis) @i_aKV
tc_infer_args (invis) @j_aKX
tc_infer_args (vis)
[anon] i -> i -> *
p_aKQ
lk1 p_aKQ
u_tys
tclvl 1
k_aTk[tau:1] ~ i_aTq[tau:1] -> i_aTq[tau:1] -> *
arising from a type equality k_aTk[tau:1]
~
i_aTq[tau:1] -> i_aTq[tau:1] -> *
found filled tyvar
k_aTk[tau:1] :-> i_aTo[tau:1] -> i_aTo[tau:1] -> *
u_tys
tclvl 1
i_aTo[tau:1] ~ i_aTq[tau:1]
arising from a type equality k_aTk[tau:1]
~
i_aTq[tau:1] -> i_aTq[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aTo[tau:1] ~ i_aTq[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aTo[tau:1] ~ i_aTq[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aTo[tau:1] := i_aTq[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aTo[tau:1] -> * ~ i_aTq[tau:1] -> *
arising from a type equality k_aTk[tau:1]
~
i_aTq[tau:1] -> i_aTq[tau:1] -> *
u_tys
tclvl 1
i_aTo[tau:1] ~ i_aTq[tau:1]
arising from a type equality k_aTk[tau:1]
~
i_aTq[tau:1] -> i_aTq[tau:1] -> *
found filled tyvar i_aTo[tau:1] :-> i_aTq[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aTk[tau:1]
~
i_aTq[tau:1] -> i_aTq[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aTk[tau:1]
i_aTq[tau:1] -> i_aTq[tau:1] -> *
<i_aTq[tau:1] -> i_aTq[tau:1] -> *>_N
tc_infer_args (vis)
[anon] j -> j -> *
q_aKR
lk1 q_aKR
u_tys
tclvl 1
k_aTl[tau:1] ~ j_aTr[tau:1] -> j_aTr[tau:1] -> *
arising from a type equality k_aTl[tau:1]
~
j_aTr[tau:1] -> j_aTr[tau:1] -> *
found filled tyvar
k_aTl[tau:1] :-> j_aTp[tau:1] -> j_aTp[tau:1] -> *
u_tys
tclvl 1
j_aTp[tau:1] ~ j_aTr[tau:1]
arising from a type equality k_aTl[tau:1]
~
j_aTr[tau:1] -> j_aTr[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aTp[tau:1] ~ j_aTr[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aTp[tau:1] ~ j_aTr[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aTp[tau:1] := j_aTr[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aTp[tau:1] -> * ~ j_aTr[tau:1] -> *
arising from a type equality k_aTl[tau:1]
~
j_aTr[tau:1] -> j_aTr[tau:1] -> *
u_tys
tclvl 1
j_aTp[tau:1] ~ j_aTr[tau:1]
arising from a type equality k_aTl[tau:1]
~
j_aTr[tau:1] -> j_aTr[tau:1] -> *
found filled tyvar j_aTp[tau:1] :-> j_aTr[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aTl[tau:1]
~
j_aTr[tau:1] -> j_aTr[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aTl[tau:1]
j_aTr[tau:1] -> j_aTr[tau:1] -> *
<j_aTr[tau:1] -> j_aTr[tau:1] -> *>_N
tc_infer_args (vis)
[anon] i -> j
g_aKT
lk1 g_aKT
u_tys
tclvl 1
k_aTn[tau:1] ~ i_aTq[tau:1] -> j_aTr[tau:1]
arising from a type equality k_aTn[tau:1]
~
i_aTq[tau:1] -> j_aTr[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aTn[tau:1] ~ i_aTq[tau:1] -> j_aTr[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aTn[tau:1] ~ i_aTq[tau:1] -> j_aTr[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aTn[tau:1] := i_aTq[tau:1] -> j_aTr[tau:1]
u_tys yields no coercion
checkExpectedKind
k_aTn[tau:1]
i_aTq[tau:1] -> j_aTr[tau:1]
<i_aTq[tau:1] -> j_aTr[tau:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
tcConArg 1
forall a_aKU. Ob p_aKQ a_aKU => q_aKR (f_aKS a_aKU) (g_aKT a_aKU)
env2 [(a_aKU, Type variable ‘a_aKU’ = a_aKU[sk:1])]
lk1 Ob
instantiating tybinders: @i_aL2 := i_aTu[tau:1]
tcTyVar2b
Ob :: forall i. (i -> i -> *) -> i -> Constraint
(i_aTu[tau:1] -> i_aTu[tau:1] -> *) -> i_aTu[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aTu[tau:1] -> i_aTu[tau:1] -> *
p_aKQ
lk1 p_aKQ
u_tys
tclvl 1
k_aTk[tau:1] ~ i_aTu[tau:1] -> i_aTu[tau:1] -> *
arising from a type equality k_aTk[tau:1]
~
i_aTu[tau:1] -> i_aTu[tau:1] -> *
found filled tyvar
k_aTk[tau:1] :-> i_aTo[tau:1] -> i_aTo[tau:1] -> *
u_tys
tclvl 1
i_aTo[tau:1] ~ i_aTu[tau:1]
arising from a type equality k_aTk[tau:1]
~
i_aTu[tau:1] -> i_aTu[tau:1] -> *
found filled tyvar i_aTo[tau:1] :-> i_aTq[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aTq[tau:1] ~ i_aTu[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aTq[tau:1] ~ i_aTu[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aTq[tau:1] := i_aTu[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aTo[tau:1] -> * ~ i_aTu[tau:1] -> *
arising from a type equality k_aTk[tau:1]
~
i_aTu[tau:1] -> i_aTu[tau:1] -> *
u_tys
tclvl 1
i_aTo[tau:1] ~ i_aTu[tau:1]
arising from a type equality k_aTk[tau:1]
~
i_aTu[tau:1] -> i_aTu[tau:1] -> *
found filled tyvar i_aTo[tau:1] :-> i_aTq[tau:1]
found filled tyvar i_aTq[tau:1] :-> i_aTu[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aTk[tau:1]
~
i_aTu[tau:1] -> i_aTu[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aTk[tau:1]
i_aTu[tau:1] -> i_aTu[tau:1] -> *
<i_aTu[tau:1] -> i_aTu[tau:1] -> *>_N
tc_infer_args (vis)
[anon] i_aTu[tau:1]
a_aKU
lk1 a_aKU
u_tys
tclvl 1
k_aTt[tau:1] ~ i_aTu[tau:1]
arising from a type equality k_aTt[tau:1] ~ i_aTu[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aTt[tau:1] ~ i_aTu[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aTt[tau:1] ~ i_aTu[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aTt[tau:1] := i_aTu[tau:1]
u_tys yields no coercion
checkExpectedKind
k_aTt[tau:1]
i_aTu[tau:1]
<i_aTu[tau:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 q_aKR
tc_infer_args (vis)
[anon] j_aTr[tau:1]
(f_aKS a_aKU)
lk1 f_aKS
tc_infer_args (vis)
[anon] i_aTu[tau:1]
a_aKU
lk1 a_aKU
u_tys
tclvl 1
k_aTt[tau:1] ~ i_aTu[tau:1]
arising from a type equality k_aTt[tau:1] ~ i_aTu[tau:1]
found filled tyvar k_aTt[tau:1] :-> i_aTu[tau:1]
u_tys yields no coercion
checkExpectedKind
k_aTt[tau:1]
i_aTu[tau:1]
<i_aTu[tau:1]>_N
u_tys
tclvl 1
j_aTr[tau:1] ~ j_aTr[tau:1]
arising from a type equality j_aTr[tau:1] ~ j_aTr[tau:1]
u_tys yields no coercion
checkExpectedKind
j_aTr[tau:1]
j_aTr[tau:1]
<j_aTr[tau:1]>_N
tc_infer_args (vis)
[anon] j_aTr[tau:1]
(g_aKT a_aKU)
lk1 g_aKT
tc_infer_args (vis)
[anon] i_aTu[tau:1]
a_aKU
lk1 a_aKU
u_tys
tclvl 1
k_aTt[tau:1] ~ i_aTu[tau:1]
arising from a type equality k_aTt[tau:1] ~ i_aTu[tau:1]
found filled tyvar k_aTt[tau:1] :-> i_aTu[tau:1]
u_tys yields no coercion
checkExpectedKind
k_aTt[tau:1]
i_aTu[tau:1]
<i_aTu[tau:1]>_N
u_tys
tclvl 1
j_aTr[tau:1] ~ j_aTr[tau:1]
arising from a type equality j_aTr[tau:1] ~ j_aTr[tau:1]
u_tys yields no coercion
checkExpectedKind
j_aTr[tau:1]
j_aTr[tau:1]
<j_aTr[tau:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aTv[tau:1]
arising from a type equality * ~ TYPE t_aTv[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aTv[tau:1]
arising from a type equality * ~ TYPE t_aTv[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aTv[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aTv[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aTv[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aTs[tau:1]
arising from a type equality * ~ TYPE t_aTs[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aTs[tau:1]
arising from a type equality * ~ TYPE t_aTs[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aTs[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aTs[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aTs[tau:1]
<*>_N
tcExplicitTKBndrs
Hs vars: [a_aKU]
tvs: (a_aKU[sk:1] :: i_aTu[tau:1])
tcConArg 2
forall a_aKU. Ob p_aKQ a_aKU => q_aKR (f_aKS a_aKU) (g_aKT a_aKU)
lk1 Nat
tcTyVar2a
Nat
forall i j.
(i -> i -> *) -> (j -> j -> *) -> (i -> j) -> (i -> j) -> *
tc_infer_args (invis) @i_aKK
tc_infer_args (invis) @j_aKM
tc_infer_args (vis)
[anon] i -> i -> *
p_aKQ
lk1 p_aKQ
u_tys
tclvl 1
k_aTk[tau:1] ~ i_aTw[tau:1] -> i_aTw[tau:1] -> *
arising from a type equality k_aTk[tau:1]
~
i_aTw[tau:1] -> i_aTw[tau:1] -> *
found filled tyvar
k_aTk[tau:1] :-> i_aTo[tau:1] -> i_aTo[tau:1] -> *
u_tys
tclvl 1
i_aTo[tau:1] ~ i_aTw[tau:1]
arising from a type equality k_aTk[tau:1]
~
i_aTw[tau:1] -> i_aTw[tau:1] -> *
found filled tyvar i_aTo[tau:1] :-> i_aTq[tau:1]
found filled tyvar i_aTq[tau:1] :-> i_aTu[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aTu[tau:1] ~ i_aTw[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aTu[tau:1] ~ i_aTw[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aTu[tau:1] := i_aTw[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aTo[tau:1] -> * ~ i_aTw[tau:1] -> *
arising from a type equality k_aTk[tau:1]
~
i_aTw[tau:1] -> i_aTw[tau:1] -> *
u_tys
tclvl 1
i_aTo[tau:1] ~ i_aTw[tau:1]
arising from a type equality k_aTk[tau:1]
~
i_aTw[tau:1] -> i_aTw[tau:1] -> *
found filled tyvar i_aTo[tau:1] :-> i_aTq[tau:1]
found filled tyvar i_aTq[tau:1] :-> i_aTu[tau:1]
found filled tyvar i_aTu[tau:1] :-> i_aTw[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aTk[tau:1]
~
i_aTw[tau:1] -> i_aTw[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aTk[tau:1]
i_aTw[tau:1] -> i_aTw[tau:1] -> *
<i_aTw[tau:1] -> i_aTw[tau:1] -> *>_N
tc_infer_args (vis)
[anon] j -> j -> *
q_aKR
lk1 q_aKR
u_tys
tclvl 1
k_aTl[tau:1] ~ j_aTx[tau:1] -> j_aTx[tau:1] -> *
arising from a type equality k_aTl[tau:1]
~
j_aTx[tau:1] -> j_aTx[tau:1] -> *
found filled tyvar
k_aTl[tau:1] :-> j_aTp[tau:1] -> j_aTp[tau:1] -> *
u_tys
tclvl 1
j_aTp[tau:1] ~ j_aTx[tau:1]
arising from a type equality k_aTl[tau:1]
~
j_aTx[tau:1] -> j_aTx[tau:1] -> *
found filled tyvar j_aTp[tau:1] :-> j_aTr[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aTr[tau:1] ~ j_aTx[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aTr[tau:1] ~ j_aTx[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aTr[tau:1] := j_aTx[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aTp[tau:1] -> * ~ j_aTx[tau:1] -> *
arising from a type equality k_aTl[tau:1]
~
j_aTx[tau:1] -> j_aTx[tau:1] -> *
u_tys
tclvl 1
j_aTp[tau:1] ~ j_aTx[tau:1]
arising from a type equality k_aTl[tau:1]
~
j_aTx[tau:1] -> j_aTx[tau:1] -> *
found filled tyvar j_aTp[tau:1] :-> j_aTr[tau:1]
found filled tyvar j_aTr[tau:1] :-> j_aTx[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aTl[tau:1]
~
j_aTx[tau:1] -> j_aTx[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aTl[tau:1]
j_aTx[tau:1] -> j_aTx[tau:1] -> *
<j_aTx[tau:1] -> j_aTx[tau:1] -> *>_N
tc_infer_args (vis)
[anon] i -> j
f_aKS
lk1 f_aKS
u_tys
tclvl 1
k_aTm[tau:1] ~ i_aTw[tau:1] -> j_aTx[tau:1]
arising from a type equality k_aTm[tau:1]
~
i_aTw[tau:1] -> j_aTx[tau:1]
found filled tyvar k_aTm[tau:1] :-> i_aTo[tau:1] -> j_aTp[tau:1]
u_tys
tclvl 1
i_aTo[tau:1] ~ i_aTw[tau:1]
arising from a type equality k_aTm[tau:1]
~
i_aTw[tau:1] -> j_aTx[tau:1]
found filled tyvar i_aTo[tau:1] :-> i_aTq[tau:1]
found filled tyvar i_aTq[tau:1] :-> i_aTu[tau:1]
found filled tyvar i_aTu[tau:1] :-> i_aTw[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aTp[tau:1] ~ j_aTx[tau:1]
arising from a type equality k_aTm[tau:1]
~
i_aTw[tau:1] -> j_aTx[tau:1]
found filled tyvar j_aTp[tau:1] :-> j_aTr[tau:1]
found filled tyvar j_aTr[tau:1] :-> j_aTx[tau:1]
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aTm[tau:1]
i_aTw[tau:1] -> j_aTx[tau:1]
<i_aTw[tau:1] -> j_aTx[tau:1]>_N
tc_infer_args (vis)
[anon] i -> j
g_aKT
lk1 g_aKT
u_tys
tclvl 1
k_aTn[tau:1] ~ i_aTw[tau:1] -> j_aTx[tau:1]
arising from a type equality k_aTn[tau:1]
~
i_aTw[tau:1] -> j_aTx[tau:1]
found filled tyvar k_aTn[tau:1] :-> i_aTq[tau:1] -> j_aTr[tau:1]
u_tys
tclvl 1
i_aTq[tau:1] ~ i_aTw[tau:1]
arising from a type equality k_aTn[tau:1]
~
i_aTw[tau:1] -> j_aTx[tau:1]
found filled tyvar i_aTq[tau:1] :-> i_aTu[tau:1]
found filled tyvar i_aTu[tau:1] :-> i_aTw[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aTr[tau:1] ~ j_aTx[tau:1]
arising from a type equality k_aTn[tau:1]
~
i_aTw[tau:1] -> j_aTx[tau:1]
found filled tyvar j_aTr[tau:1] :-> j_aTx[tau:1]
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aTn[tau:1]
i_aTw[tau:1] -> j_aTx[tau:1]
<i_aTw[tau:1] -> j_aTx[tau:1]>_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
lookupCF
Nat
Just [runNat{runNat}]
[rKl :-> [runNat{runNat}], rKy :-> [], rKC :-> [getY{getY}]]
tcExplicitTKBndrs
Hs vars: []
tvs:
tcImplicitTKBndrs
[p_aKQ, q_aKR, f_aKS, g_aKT]
[p_aKQ[sk:1], q_aKR[sk:1], f_aKS[sk:1], g_aKT[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aTy
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aTz
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aTx :-> j_aTx[tau:1], aTw :-> i_aTw[tau:1]]
dv_tvs = [aTx :-> j_aTx[tau:1], aTw :-> i_aTw[tau:1]]}
[]
Skolemising j_aTx[tau:1] := j_aTx[sk:1]
writeMetaTyVar j_aTx[tau:1] := j_aTx[sk:1]
Skolemising i_aTw[tau:1] := i_aTw[sk:1]
writeMetaTyVar i_aTw[tau:1] := i_aTw[sk:1]
quantifyTyVars
globals: []
nondep: []
dep: [j_aTx[tau:1], i_aTw[tau:1]]
dep_kvs' [j_aTx[sk:1], i_aTw[sk:1]]
nondep_tvs' []
tcConDecl 2
[Nat]
[runNat{runNat}]
tcConDecl 2 [Nat]
tcDataDefn
Nat
[@i_aKK, @j_aKM, p_aKL, q_aKN, f_aKO, g_aKP]
[]
tcTyAndCl-x
class (Category p_aKW, Category q_aKY) => Functor (p_aKW :: i_aKV
-> i_aKV -> *) (q_aKY :: j_aKX
-> j_aKX
-> *) (f_aKZ :: i_aKV
-> j_aKX) | f_aKZ -> p_aKW
q_aKY where
fmap :: p_aKW a_aL0 b_aL1 -> q_aKY (f_aKZ a_aL0) (f_aKZ b_aL1)
env2
[(i_aKV, Type variable ‘i_aKV’ = i_aKV[sk:1]),
(j_aKX, Type variable ‘j_aKX’ = j_aKX[sk:1]),
(p_aKW, Type variable ‘p_aKW’ = p_aKW[sk:1]),
(q_aKY, Type variable ‘q_aKY’ = q_aKY[sk:1]),
(f_aKZ, Type variable ‘f_aKZ’ = f_aKZ[sk:1])]
tcClassDecl 1
Functor
[@i_aKV, @j_aKX, p_aKW, q_aKY, f_aKZ]
lk1 Category
tcTyVar2a
Category
forall i. (i -> i -> *) -> Constraint
tc_infer_args (invis) @i_aL2
tc_infer_args (vis)
[anon] i -> i -> *
p_aKW
lk1 p_aKW
u_tys
tclvl 1
i_aKV[sk:1] -> i_aKV[sk:1] -> * ~ i_aTF[tau:1] -> i_aTF[tau:1] -> *
arising from a type equality i_aKV[sk:1] -> i_aKV[sk:1] -> *
~
i_aTF[tau:1] -> i_aTF[tau:1] -> *
u_tys
tclvl 1
i_aKV[sk:1] ~ i_aTF[tau:1]
arising from a type equality i_aKV[sk:1] -> i_aKV[sk:1] -> *
~
i_aTF[tau:1] -> i_aTF[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aTF[tau:1] ~ i_aKV[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aTF[tau:1] ~ i_aKV[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aTF[tau:1] := i_aKV[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aKV[sk:1] -> * ~ i_aTF[tau:1] -> *
arising from a type equality i_aKV[sk:1] -> i_aKV[sk:1] -> *
~
i_aTF[tau:1] -> i_aTF[tau:1] -> *
u_tys
tclvl 1
i_aKV[sk:1] ~ i_aTF[tau:1]
arising from a type equality i_aKV[sk:1] -> i_aKV[sk:1] -> *
~
i_aTF[tau:1] -> i_aTF[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aKV[sk:1] -> i_aKV[sk:1] -> *
~
i_aTF[tau:1] -> i_aTF[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aKV[sk:1] -> i_aKV[sk:1] -> *
i_aTF[tau:1] -> i_aTF[tau:1] -> *
<i_aKV[sk:1] -> i_aKV[sk:1] -> *>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 Category
tcTyVar2a
Category
forall i. (i -> i -> *) -> Constraint
tc_infer_args (invis) @i_aL2
tc_infer_args (vis)
[anon] i -> i -> *
q_aKY
lk1 q_aKY
u_tys
tclvl 1
j_aKX[sk:1] -> j_aKX[sk:1] -> * ~ i_aTG[tau:1] -> i_aTG[tau:1] -> *
arising from a type equality j_aKX[sk:1] -> j_aKX[sk:1] -> *
~
i_aTG[tau:1] -> i_aTG[tau:1] -> *
u_tys
tclvl 1
j_aKX[sk:1] ~ i_aTG[tau:1]
arising from a type equality j_aKX[sk:1] -> j_aKX[sk:1] -> *
~
i_aTG[tau:1] -> i_aTG[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aTG[tau:1] ~ j_aKX[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aTG[tau:1] ~ j_aKX[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aTG[tau:1] := j_aKX[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aKX[sk:1] -> * ~ i_aTG[tau:1] -> *
arising from a type equality j_aKX[sk:1] -> j_aKX[sk:1] -> *
~
i_aTG[tau:1] -> i_aTG[tau:1] -> *
u_tys
tclvl 1
j_aKX[sk:1] ~ i_aTG[tau:1]
arising from a type equality j_aKX[sk:1] -> j_aKX[sk:1] -> *
~
i_aTG[tau:1] -> i_aTG[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aKX[sk:1] -> j_aKX[sk:1] -> *
~
i_aTG[tau:1] -> i_aTG[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aKX[sk:1] -> j_aKX[sk:1] -> *
i_aTG[tau:1] -> i_aTG[tau:1] -> *
<j_aKX[sk:1] -> j_aKX[sk:1] -> *>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
solveEqualities { wanted = WC {}
newTcEvBinds unique = aTH
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aTI
reportAllUnsolved }
tcClassSigs 1 Functor
ClsSig 1 [fmap]
env2
[(a_aL0, Type variable ‘a_aL0’ = a_aL0[sk:1]),
(b_aL1, Type variable ‘b_aL1’ = b_aL1[sk:1])]
lk1 p_aKW
tc_infer_args (vis)
[anon] i_aKV[sk:1]
a_aL0
lk1 a_aL0
u_tys
tclvl 1
k_aTJ[tau:1] ~ i_aKV[sk:1]
arising from a type equality k_aTJ[tau:1] ~ i_aKV[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aTJ[tau:1] ~ i_aKV[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aTJ[tau:1] ~ i_aKV[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aTJ[tau:1] := i_aKV[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aTJ[tau:1]
i_aKV[sk:1]
<i_aKV[sk:1]>_N
tc_infer_args (vis)
[anon] i_aKV[sk:1]
b_aL1
lk1 b_aL1
u_tys
tclvl 1
k_aTK[tau:1] ~ i_aKV[sk:1]
arising from a type equality k_aTK[tau:1] ~ i_aKV[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aTK[tau:1] ~ i_aKV[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aTK[tau:1] ~ i_aKV[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aTK[tau:1] := i_aKV[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aTK[tau:1]
i_aKV[sk:1]
<i_aKV[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aTL[tau:1]
arising from a type equality * ~ TYPE t_aTL[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aTL[tau:1]
arising from a type equality * ~ TYPE t_aTL[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aTL[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aTL[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aTL[tau:1]
<*>_N
lk1 q_aKY
tc_infer_args (vis)
[anon] j_aKX[sk:1]
(f_aKZ a_aL0)
lk1 f_aKZ
tc_infer_args (vis)
[anon] i_aKV[sk:1]
a_aL0
lk1 a_aL0
u_tys
tclvl 1
k_aTJ[tau:1] ~ i_aKV[sk:1]
arising from a type equality k_aTJ[tau:1] ~ i_aKV[sk:1]
found filled tyvar k_aTJ[tau:1] :-> i_aKV[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aTJ[tau:1]
i_aKV[sk:1]
<i_aKV[sk:1]>_N
u_tys
tclvl 1
j_aKX[sk:1] ~ j_aKX[sk:1]
arising from a type equality j_aKX[sk:1] ~ j_aKX[sk:1]
u_tys yields no coercion
checkExpectedKind
j_aKX[sk:1]
j_aKX[sk:1]
<j_aKX[sk:1]>_N
tc_infer_args (vis)
[anon] j_aKX[sk:1]
(f_aKZ b_aL1)
lk1 f_aKZ
tc_infer_args (vis)
[anon] i_aKV[sk:1]
b_aL1
lk1 b_aL1
u_tys
tclvl 1
k_aTK[tau:1] ~ i_aKV[sk:1]
arising from a type equality k_aTK[tau:1] ~ i_aKV[sk:1]
found filled tyvar k_aTK[tau:1] :-> i_aKV[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aTK[tau:1]
i_aKV[sk:1]
<i_aKV[sk:1]>_N
u_tys
tclvl 1
j_aKX[sk:1] ~ j_aKX[sk:1]
arising from a type equality j_aKX[sk:1] ~ j_aKX[sk:1]
u_tys yields no coercion
checkExpectedKind
j_aKX[sk:1]
j_aKX[sk:1]
<j_aKX[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aTM[tau:1]
arising from a type equality * ~ TYPE t_aTM[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aTM[tau:1]
arising from a type equality * ~ TYPE t_aTM[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aTM[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aTM[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aTM[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aL0, b_aL1]
[a_aL0[sk:1], b_aL1[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aTN
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aTO
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aKW :-> p_aKW[sk:1], aKY :-> q_aKY[sk:1],
aKZ :-> f_aKZ[sk:1], aKX :-> j_aKX[sk:1], aKV :-> i_aKV[sk:1]]
dv_tvs = []}
[aKV :-> i_aKV[sk:1], aKW :-> p_aKW[sk:1], aKX :-> j_aKX[sk:1],
aKY :-> q_aKY[sk:1], aKZ :-> f_aKZ[sk:1]]
quantifyTyVars
globals: [aKV :-> i_aKV[sk:1], aKW :-> p_aKW[sk:1],
aKX :-> j_aKX[sk:1], aKY :-> q_aKY[sk:1], aKZ :-> f_aKZ[sk:1]]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
ClsSig 2 [fmap]
tcClassSigs 2 Functor
tcClassDecl
[([f_aKZ], [p_aKW, q_aKY])]
[@i_aKV, @j_aKX, p_aKW, q_aKY, f_aKZ]
[([f_aKZ[sk:1]], [p_aKW[sk:1], q_aKY[sk:1]])]
tcTyAndCl-x
class Functor (Op p_aL3) (Nat p_aL3 (->)) p_aL3 => Category (p_aL3 :: i_aL2
-> i_aL2 -> *) where
type Ob p_aL3 :: i_aL2 -> Constraint
type Ob p_aL4 = Vacuous p_aL4
id :: Ob p_aL3 a_aL5 => p_aL3 a_aL5 a_aL5
(.) :: p_aL3 b_aL6 c_aL7 -> p_aL3 a_aL8 b_aL6 -> p_aL3 a_aL8 c_aL7
source :: p_aL3 a_aL9 b_aLa -> Dict (Ob p_aL3 a_aL9)
default source ::
(Ob p_aL3 ~ Vacuous p_aL3) =>
p_aL3 a_aLb b_aLc -> Dict (Ob p_aL3 a_aLb)
source _ = Dict
target :: p_aL3 a_aLd b_aLe -> Dict (Ob p_aL3 b_aLe)
default target ::
(Ob p_aL3 ~ Vacuous p_aL3) =>
p_aL3 a_aLf b_aLg -> Dict (Ob p_aL3 b_aLg)
target _ = Dict
op :: p_aL3 b_aLh a_aLi -> Op p_aL3 a_aLi b_aLh
default op ::
Op p_aL3 ~ Y p_aL3 => p_aL3 b_aLj a_aLk -> Op p_aL3 a_aLk b_aLj
op = Y
unop :: Op p_aL3 b_aLl a_aLm -> p_aL3 a_aLm b_aLl
default unop ::
Op p_aL3 ~ Y p_aL3 => Op p_aL3 b_aLn a_aLo -> p_aL3 a_aLo b_aLn
unop = getY
env2
[(i_aL2, Type variable ‘i_aL2’ = i_aL2[sk:1]),
(p_aL3, Type variable ‘p_aL3’ = p_aL3[sk:1])]
tcClassDecl 1
Category
[@i_aL2, p_aL3]
lk1 Functor
tcTyVar2a
Functor
forall i j.
(i -> i -> *) -> (j -> j -> *) -> (i -> j) -> Constraint
tc_infer_args (invis) @i_aKV
tc_infer_args (invis) @j_aKX
tc_infer_args (vis)
[anon] i -> i -> *
(Op p_aL3)
lk1 Op
instantiating tybinders:
@j_aLv := j_aTZ[tau:1]
@i_aLu := i_aU0[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aU0[tau:1] -> j_aTZ[tau:1] -> *)
-> j_aTZ[tau:1] -> i_aU0[tau:1] -> *
tc_infer_args (vis)
[anon] i_aU0[tau:1] -> j_aTZ[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aU0[tau:1] -> j_aTZ[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aU0[tau:1] -> j_aTZ[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aU0[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aU0[tau:1] -> j_aTZ[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aU0[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aU0[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aU0[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aTZ[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aU0[tau:1] -> j_aTZ[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aTZ[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aU0[tau:1] -> j_aTZ[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aTZ[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aTZ[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aTZ[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aU0[tau:1] -> j_aTZ[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aU0[tau:1] -> j_aTZ[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
j_aTZ[tau:1] -> i_aU0[tau:1] -> *
~
i_aTX[tau:1] -> i_aTX[tau:1] -> *
arising from a type equality j_aTZ[tau:1] -> i_aU0[tau:1] -> *
~
i_aTX[tau:1] -> i_aTX[tau:1] -> *
u_tys
tclvl 1
j_aTZ[tau:1] ~ i_aTX[tau:1]
arising from a type equality j_aTZ[tau:1] -> i_aU0[tau:1] -> *
~
i_aTX[tau:1] -> i_aTX[tau:1] -> *
found filled tyvar j_aTZ[tau:1] :-> i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aTX[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aTX[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aTX[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aU0[tau:1] -> * ~ i_aTX[tau:1] -> *
arising from a type equality j_aTZ[tau:1] -> i_aU0[tau:1] -> *
~
i_aTX[tau:1] -> i_aTX[tau:1] -> *
u_tys
tclvl 1
i_aU0[tau:1] ~ i_aTX[tau:1]
arising from a type equality j_aTZ[tau:1] -> i_aU0[tau:1] -> *
~
i_aTX[tau:1] -> i_aTX[tau:1] -> *
found filled tyvar i_aU0[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aTZ[tau:1] -> i_aU0[tau:1] -> *
~
i_aTX[tau:1] -> i_aTX[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aTZ[tau:1] -> i_aU0[tau:1] -> *
i_aTX[tau:1] -> i_aTX[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j -> j -> *
(Nat p_aL3 (->))
lk1 Nat
tcTyVar2a
Nat
forall i j.
(i -> i -> *) -> (j -> j -> *) -> (i -> j) -> (i -> j) -> *
tc_infer_args (invis) @i_aKK
tc_infer_args (invis) @j_aKM
tc_infer_args (vis)
[anon] i -> i -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aU1[tau:1] -> i_aU1[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aU1[tau:1] -> i_aU1[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aU1[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aU1[tau:1] -> i_aU1[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aU1[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aU1[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aU1[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aU1[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aU1[tau:1] -> i_aU1[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aU1[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aU1[tau:1] -> i_aU1[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aU1[tau:1] -> i_aU1[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aU1[tau:1] -> i_aU1[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j -> j -> *
(->)
lk1 (->)
tcTyVar2a
(->)
TYPE q -> TYPE r -> *
instantiating tybinders:
{q_1h} := q_aU3[tau:1]
{r_1i} := r_aU4[tau:1]
u_tys
tclvl 1
TYPE q_aU3[tau:1] -> TYPE r_aU4[tau:1] -> *
~
j_aU2[tau:1] -> j_aU2[tau:1] -> *
arising from a type equality TYPE q_aU3[tau:1]
-> TYPE r_aU4[tau:1] -> *
~
j_aU2[tau:1] -> j_aU2[tau:1] -> *
u_tys
tclvl 1
TYPE q_aU3[tau:1] ~ j_aU2[tau:1]
arising from a type equality TYPE q_aU3[tau:1]
-> TYPE r_aU4[tau:1] -> *
~
j_aU2[tau:1] -> j_aU2[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aU2[tau:1] ~ TYPE q_aU3[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aU2[tau:1] ~ TYPE q_aU3[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aU2[tau:1] := TYPE q_aU3[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
TYPE r_aU4[tau:1] -> * ~ j_aU2[tau:1] -> *
arising from a type equality TYPE q_aU3[tau:1]
-> TYPE r_aU4[tau:1] -> *
~
j_aU2[tau:1] -> j_aU2[tau:1] -> *
u_tys
tclvl 1
TYPE r_aU4[tau:1] ~ j_aU2[tau:1]
arising from a type equality TYPE q_aU3[tau:1]
-> TYPE r_aU4[tau:1] -> *
~
j_aU2[tau:1] -> j_aU2[tau:1] -> *
found filled tyvar j_aU2[tau:1] :-> TYPE q_aU3[tau:1]
u_tys
tclvl 1
r_aU4[tau:1] ~ q_aU3[tau:1]
arising from a type equality TYPE q_aU3[tau:1]
-> TYPE r_aU4[tau:1] -> *
~
j_aU2[tau:1] -> j_aU2[tau:1] -> *
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
r_aU4[tau:1] ~ q_aU3[tau:1]
u_tys yields no coercion
writeMetaTyVar r_aU4[tau:1] := q_aU3[tau:1]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality TYPE q_aU3[tau:1]
-> TYPE r_aU4[tau:1] -> *
~
j_aU2[tau:1] -> j_aU2[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality TYPE q_aU3[tau:1]
-> TYPE r_aU4[tau:1] -> *
~
j_aU2[tau:1] -> j_aU2[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
TYPE q -> TYPE r -> *
j_aU2[tau:1] -> j_aU2[tau:1] -> *
<TYPE q_aU3[tau:1] -> TYPE q_aU3[tau:1] -> *>_N
u_tys
tclvl 1
(i_aU1[tau:1] -> j_aU2[tau:1])
-> (i_aU1[tau:1] -> j_aU2[tau:1]) -> *
~
j_aTY[tau:1] -> j_aTY[tau:1] -> *
arising from a type equality (i_aU1[tau:1] -> j_aU2[tau:1])
-> (i_aU1[tau:1] -> j_aU2[tau:1]) -> *
~
j_aTY[tau:1] -> j_aTY[tau:1] -> *
u_tys
tclvl 1
i_aU1[tau:1] -> j_aU2[tau:1] ~ j_aTY[tau:1]
arising from a type equality (i_aU1[tau:1] -> j_aU2[tau:1])
-> (i_aU1[tau:1] -> j_aU2[tau:1]) -> *
~
j_aTY[tau:1] -> j_aTY[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aTY[tau:1] ~ i_aL2[sk:1] -> TYPE q_aU3[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aTY[tau:1] ~ i_aL2[sk:1] -> TYPE q_aU3[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aTY[tau:1] := i_aL2[sk:1] -> TYPE q_aU3[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
(i_aU1[tau:1] -> j_aU2[tau:1]) -> * ~ j_aTY[tau:1] -> *
arising from a type equality (i_aU1[tau:1] -> j_aU2[tau:1])
-> (i_aU1[tau:1] -> j_aU2[tau:1]) -> *
~
j_aTY[tau:1] -> j_aTY[tau:1] -> *
u_tys
tclvl 1
i_aU1[tau:1] -> j_aU2[tau:1] ~ j_aTY[tau:1]
arising from a type equality (i_aU1[tau:1] -> j_aU2[tau:1])
-> (i_aU1[tau:1] -> j_aU2[tau:1]) -> *
~
j_aTY[tau:1] -> j_aTY[tau:1] -> *
found filled tyvar
j_aTY[tau:1] :-> i_aL2[sk:1] -> TYPE q_aU3[tau:1]
u_tys
tclvl 1
i_aU1[tau:1] ~ i_aL2[sk:1]
arising from a type equality (i_aU1[tau:1] -> j_aU2[tau:1])
-> (i_aU1[tau:1] -> j_aU2[tau:1]) -> *
~
j_aTY[tau:1] -> j_aTY[tau:1] -> *
found filled tyvar i_aU1[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
j_aU2[tau:1] ~ TYPE q_aU3[tau:1]
arising from a type equality (i_aU1[tau:1] -> j_aU2[tau:1])
-> (i_aU1[tau:1] -> j_aU2[tau:1]) -> *
~
j_aTY[tau:1] -> j_aTY[tau:1] -> *
found filled tyvar j_aU2[tau:1] :-> TYPE q_aU3[tau:1]
u_tys
tclvl 1
q_aU3[tau:1] ~ q_aU3[tau:1]
arising from a type equality (i_aU1[tau:1] -> j_aU2[tau:1])
-> (i_aU1[tau:1] -> j_aU2[tau:1]) -> *
~
j_aTY[tau:1] -> j_aTY[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality (i_aU1[tau:1] -> j_aU2[tau:1])
-> (i_aU1[tau:1] -> j_aU2[tau:1]) -> *
~
j_aTY[tau:1] -> j_aTY[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality (i_aU1[tau:1] -> j_aU2[tau:1])
-> (i_aU1[tau:1] -> j_aU2[tau:1]) -> *
~
j_aTY[tau:1] -> j_aTY[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
(i_aU1[tau:1] -> j_aU2[tau:1])
-> (i_aU1[tau:1] -> j_aU2[tau:1]) -> *
j_aTY[tau:1] -> j_aTY[tau:1] -> *
<(i_aL2[sk:1] -> TYPE q_aU3[tau:1])
-> (i_aL2[sk:1] -> TYPE q_aU3[tau:1]) -> *>_N
tc_infer_args (vis)
[anon] i -> j
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aTX[tau:1] -> j_aTY[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aTX[tau:1] -> j_aTY[tau:1]
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aTX[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aTX[tau:1] -> j_aTY[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aTY[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aTX[tau:1] -> j_aTY[tau:1]
found filled tyvar
j_aTY[tau:1] :-> i_aL2[sk:1] -> TYPE q_aU3[tau:1]
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aL2[sk:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aTX[tau:1] -> j_aTY[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ TYPE q_aU3[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aTX[tau:1] -> j_aTY[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ q_aU3[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aTX[tau:1] -> j_aTY[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
q_aU3[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar q_aU3[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aTX[tau:1] -> j_aTY[tau:1]
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
solveEqualities { wanted = WC {}
newTcEvBinds unique = aU5
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aU6
reportAllUnsolved }
tcClassSigs 1 Category
env2
[(a_aLb, Type variable ‘a_aLb’ = a_aLb[sk:1]),
(b_aLc, Type variable ‘b_aLc’ = b_aLc[sk:1])]
lk1 ~
tcTyVar2a
~
forall k. k -> k -> Constraint
tc_infer_args (invis) @k_aSe
tc_infer_args (vis)
[anon] k
Ob p_aL3
lk1 Ob
instantiating tybinders: @i_aL2 := i_aUa[tau:1]
tcTyVar2b
Ob :: forall i. (i -> i -> *) -> i -> Constraint
(i_aUa[tau:1] -> i_aUa[tau:1] -> *) -> i_aUa[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aUa[tau:1] -> i_aUa[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUa[tau:1] -> i_aUa[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUa[tau:1] -> i_aUa[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUa[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUa[tau:1] -> i_aUa[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUa[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUa[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUa[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aUa[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUa[tau:1] -> i_aUa[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUa[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUa[tau:1] -> i_aUa[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUa[tau:1] -> i_aUa[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUa[tau:1] -> i_aUa[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
i_aUa[tau:1] -> Constraint ~ k_aU9[tau:1]
arising from a type equality i_aUa[tau:1] -> Constraint
~
k_aU9[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aU9[tau:1] ~ i_aL2[sk:1] -> Constraint
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aU9[tau:1] ~ i_aL2[sk:1] -> Constraint
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aU9[tau:1] := i_aL2[sk:1] -> Constraint
u_tys yields no coercion
checkExpectedKind
i_aUa[tau:1] -> Constraint
k_aU9[tau:1]
<i_aL2[sk:1] -> Constraint>_N
tc_infer_args (vis)
[anon] k
Vacuous p_aL3
lk1 Vacuous
tcTyVar2a
Vacuous
forall i. (i -> i -> *) -> i -> Constraint
tc_infer_args (invis) @i_aLr
tc_infer_args (vis)
[anon] i -> i -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUb[tau:1] -> i_aUb[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUb[tau:1] -> i_aUb[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUb[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUb[tau:1] -> i_aUb[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUb[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUb[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUb[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aUb[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUb[tau:1] -> i_aUb[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUb[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUb[tau:1] -> i_aUb[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUb[tau:1] -> i_aUb[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUb[tau:1] -> i_aUb[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
i_aUb[tau:1] -> Constraint ~ k_aU9[tau:1]
arising from a type equality i_aUb[tau:1] -> Constraint
~
k_aU9[tau:1]
found filled tyvar k_aU9[tau:1] :-> i_aL2[sk:1] -> Constraint
u_tys
tclvl 1
i_aUb[tau:1] ~ i_aL2[sk:1]
arising from a type equality i_aUb[tau:1] -> Constraint
~
k_aU9[tau:1]
found filled tyvar i_aUb[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality i_aUb[tau:1] -> Constraint
~
k_aU9[tau:1]
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aUb[tau:1] -> Constraint
k_aU9[tau:1]
<i_aL2[sk:1] -> Constraint>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLb
lk1 a_aLb
u_tys
tclvl 1
k_aU7[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aU7[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aU7[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aU7[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aU7[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aU7[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLc
lk1 b_aLc
u_tys
tclvl 1
k_aU8[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aU8[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aU8[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aU8[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aU8[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aU8[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aUd[tau:1]
arising from a type equality * ~ TYPE t_aUd[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUd[tau:1]
arising from a type equality * ~ TYPE t_aUd[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUd[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUd[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUd[tau:1]
<*>_N
lk1 Dict
tcTyVar2a
Dict
Constraint -> *
tc_infer_args (vis)
[anon] Constraint
(Ob p_aL3 a_aLb)
lk1 Ob
instantiating tybinders: @i_aL2 := i_aUf[tau:1]
tcTyVar2b
Ob :: forall i. (i -> i -> *) -> i -> Constraint
(i_aUf[tau:1] -> i_aUf[tau:1] -> *) -> i_aUf[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aUf[tau:1] -> i_aUf[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUf[tau:1] -> i_aUf[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUf[tau:1] -> i_aUf[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUf[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUf[tau:1] -> i_aUf[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUf[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUf[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUf[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aUf[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUf[tau:1] -> i_aUf[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUf[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUf[tau:1] -> i_aUf[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUf[tau:1] -> i_aUf[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUf[tau:1] -> i_aUf[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] i_aUf[tau:1]
a_aLb
lk1 a_aLb
u_tys
tclvl 1
k_aU7[tau:1] ~ i_aUf[tau:1]
arising from a type equality k_aU7[tau:1] ~ i_aUf[tau:1]
found filled tyvar k_aU7[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aU7[tau:1]
i_aUf[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
u_tys
tclvl 1
* ~ TYPE t_aUe[tau:1]
arising from a type equality * ~ TYPE t_aUe[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUe[tau:1]
arising from a type equality * ~ TYPE t_aUe[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUe[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUe[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUe[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aUc[tau:1]
arising from a type equality * ~ TYPE t_aUc[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUc[tau:1]
arising from a type equality * ~ TYPE t_aUc[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUc[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUc[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUc[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aLb, b_aLc]
[a_aLb[sk:1], b_aLc[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aUg
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aUh
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aL3 :-> p_aL3[sk:1], aL2 :-> i_aL2[sk:1]]
dv_tvs = []}
[aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
quantifyTyVars
globals: [aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
env2
[(a_aLf, Type variable ‘a_aLf’ = a_aLf[sk:1]),
(b_aLg, Type variable ‘b_aLg’ = b_aLg[sk:1])]
lk1 ~
tcTyVar2a
~
forall k. k -> k -> Constraint
tc_infer_args (invis) @k_aSe
tc_infer_args (vis)
[anon] k
Ob p_aL3
lk1 Ob
instantiating tybinders: @i_aL2 := i_aUl[tau:1]
tcTyVar2b
Ob :: forall i. (i -> i -> *) -> i -> Constraint
(i_aUl[tau:1] -> i_aUl[tau:1] -> *) -> i_aUl[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aUl[tau:1] -> i_aUl[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUl[tau:1] -> i_aUl[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUl[tau:1] -> i_aUl[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUl[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUl[tau:1] -> i_aUl[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUl[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUl[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUl[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aUl[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUl[tau:1] -> i_aUl[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUl[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUl[tau:1] -> i_aUl[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUl[tau:1] -> i_aUl[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUl[tau:1] -> i_aUl[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
i_aUl[tau:1] -> Constraint ~ k_aUk[tau:1]
arising from a type equality i_aUl[tau:1] -> Constraint
~
k_aUk[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aUk[tau:1] ~ i_aL2[sk:1] -> Constraint
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aUk[tau:1] ~ i_aL2[sk:1] -> Constraint
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aUk[tau:1] := i_aL2[sk:1] -> Constraint
u_tys yields no coercion
checkExpectedKind
i_aUl[tau:1] -> Constraint
k_aUk[tau:1]
<i_aL2[sk:1] -> Constraint>_N
tc_infer_args (vis)
[anon] k
Vacuous p_aL3
lk1 Vacuous
tcTyVar2a
Vacuous
forall i. (i -> i -> *) -> i -> Constraint
tc_infer_args (invis) @i_aLr
tc_infer_args (vis)
[anon] i -> i -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUm[tau:1] -> i_aUm[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUm[tau:1] -> i_aUm[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUm[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUm[tau:1] -> i_aUm[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUm[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUm[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUm[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aUm[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUm[tau:1] -> i_aUm[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUm[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUm[tau:1] -> i_aUm[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUm[tau:1] -> i_aUm[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUm[tau:1] -> i_aUm[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
i_aUm[tau:1] -> Constraint ~ k_aUk[tau:1]
arising from a type equality i_aUm[tau:1] -> Constraint
~
k_aUk[tau:1]
found filled tyvar k_aUk[tau:1] :-> i_aL2[sk:1] -> Constraint
u_tys
tclvl 1
i_aUm[tau:1] ~ i_aL2[sk:1]
arising from a type equality i_aUm[tau:1] -> Constraint
~
k_aUk[tau:1]
found filled tyvar i_aUm[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality i_aUm[tau:1] -> Constraint
~
k_aUk[tau:1]
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aUm[tau:1] -> Constraint
k_aUk[tau:1]
<i_aL2[sk:1] -> Constraint>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLf
lk1 a_aLf
u_tys
tclvl 1
k_aUi[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aUi[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aUi[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aUi[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aUi[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUi[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLg
lk1 b_aLg
u_tys
tclvl 1
k_aUj[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aUj[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aUj[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aUj[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aUj[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUj[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aUo[tau:1]
arising from a type equality * ~ TYPE t_aUo[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUo[tau:1]
arising from a type equality * ~ TYPE t_aUo[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUo[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUo[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUo[tau:1]
<*>_N
lk1 Dict
tcTyVar2a
Dict
Constraint -> *
tc_infer_args (vis)
[anon] Constraint
(Ob p_aL3 b_aLg)
lk1 Ob
instantiating tybinders: @i_aL2 := i_aUq[tau:1]
tcTyVar2b
Ob :: forall i. (i -> i -> *) -> i -> Constraint
(i_aUq[tau:1] -> i_aUq[tau:1] -> *) -> i_aUq[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aUq[tau:1] -> i_aUq[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUq[tau:1] -> i_aUq[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUq[tau:1] -> i_aUq[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUq[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUq[tau:1] -> i_aUq[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUq[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUq[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUq[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aUq[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUq[tau:1] -> i_aUq[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUq[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUq[tau:1] -> i_aUq[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUq[tau:1] -> i_aUq[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUq[tau:1] -> i_aUq[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] i_aUq[tau:1]
b_aLg
lk1 b_aLg
u_tys
tclvl 1
k_aUj[tau:1] ~ i_aUq[tau:1]
arising from a type equality k_aUj[tau:1] ~ i_aUq[tau:1]
found filled tyvar k_aUj[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUj[tau:1]
i_aUq[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
u_tys
tclvl 1
* ~ TYPE t_aUp[tau:1]
arising from a type equality * ~ TYPE t_aUp[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUp[tau:1]
arising from a type equality * ~ TYPE t_aUp[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUp[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUp[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUp[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aUn[tau:1]
arising from a type equality * ~ TYPE t_aUn[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUn[tau:1]
arising from a type equality * ~ TYPE t_aUn[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUn[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUn[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUn[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aLf, b_aLg]
[a_aLf[sk:1], b_aLg[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aUr
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aUs
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aL3 :-> p_aL3[sk:1], aL2 :-> i_aL2[sk:1]]
dv_tvs = []}
[aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
quantifyTyVars
globals: [aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
env2
[(b_aLj, Type variable ‘b_aLj’ = b_aLj[sk:1]),
(a_aLk, Type variable ‘a_aLk’ = a_aLk[sk:1])]
lk1 ~
tcTyVar2a
~
forall k. k -> k -> Constraint
tc_infer_args (invis) @k_aSe
tc_infer_args (vis)
[anon] k
Op p_aL3
lk1 Op
instantiating tybinders:
@j_aLv := j_aUw[tau:1]
@i_aLu := i_aUx[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aUx[tau:1] -> j_aUw[tau:1] -> *)
-> j_aUw[tau:1] -> i_aUx[tau:1] -> *
tc_infer_args (vis)
[anon] i_aUx[tau:1] -> j_aUw[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUx[tau:1] -> j_aUw[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUx[tau:1] -> j_aUw[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUx[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUx[tau:1] -> j_aUw[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUx[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUx[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUx[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aUw[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUx[tau:1] -> j_aUw[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aUw[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUx[tau:1] -> j_aUw[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aUw[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aUw[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aUw[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUx[tau:1] -> j_aUw[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUx[tau:1] -> j_aUw[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
j_aUw[tau:1] -> i_aUx[tau:1] -> * ~ k_aUv[tau:1]
arising from a type equality j_aUw[tau:1] -> i_aUx[tau:1] -> *
~
k_aUv[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aUv[tau:1] ~ i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aUv[tau:1] ~ i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aUv[tau:1] := i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys yields no coercion
checkExpectedKind
j_aUw[tau:1] -> i_aUx[tau:1] -> *
k_aUv[tau:1]
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] k
Y p_aL3
lk1 Y
tcTyVar2a
Y
forall j i. (i -> j -> *) -> j -> i -> *
tc_infer_args (invis) @j_aLA
tc_infer_args (invis) @i_aLz
tc_infer_args (vis)
[anon] i -> j -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUz[tau:1] -> j_aUy[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUz[tau:1] -> j_aUy[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUz[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUz[tau:1] -> j_aUy[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUz[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUz[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUz[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aUy[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUz[tau:1] -> j_aUy[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aUy[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUz[tau:1] -> j_aUy[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aUy[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aUy[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aUy[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUz[tau:1] -> j_aUy[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUz[tau:1] -> j_aUy[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
j_aUy[tau:1] -> i_aUz[tau:1] -> * ~ k_aUv[tau:1]
arising from a type equality j_aUy[tau:1] -> i_aUz[tau:1] -> *
~
k_aUv[tau:1]
found filled tyvar k_aUv[tau:1] :-> i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys
tclvl 1
j_aUy[tau:1] ~ i_aL2[sk:1]
arising from a type equality j_aUy[tau:1] -> i_aUz[tau:1] -> *
~
k_aUv[tau:1]
found filled tyvar j_aUy[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aUz[tau:1] -> * ~ i_aL2[sk:1] -> *
arising from a type equality j_aUy[tau:1] -> i_aUz[tau:1] -> *
~
k_aUv[tau:1]
u_tys
tclvl 1
i_aUz[tau:1] ~ i_aL2[sk:1]
arising from a type equality j_aUy[tau:1] -> i_aUz[tau:1] -> *
~
k_aUv[tau:1]
found filled tyvar i_aUz[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aUy[tau:1] -> i_aUz[tau:1] -> *
~
k_aUv[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality j_aUy[tau:1] -> i_aUz[tau:1] -> *
~
k_aUv[tau:1]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aUy[tau:1] -> i_aUz[tau:1] -> *
k_aUv[tau:1]
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLj
lk1 b_aLj
u_tys
tclvl 1
k_aUt[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aUt[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aUt[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aUt[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aUt[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUt[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLk
lk1 a_aLk
u_tys
tclvl 1
k_aUu[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aUu[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aUu[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aUu[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aUu[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUu[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aUB[tau:1]
arising from a type equality * ~ TYPE t_aUB[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUB[tau:1]
arising from a type equality * ~ TYPE t_aUB[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUB[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUB[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUB[tau:1]
<*>_N
lk1 Op
instantiating tybinders:
@j_aLv := j_aUD[tau:1]
@i_aLu := i_aUE[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aUE[tau:1] -> j_aUD[tau:1] -> *)
-> j_aUD[tau:1] -> i_aUE[tau:1] -> *
tc_infer_args (vis)
[anon] i_aUE[tau:1] -> j_aUD[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUE[tau:1] -> j_aUD[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUE[tau:1] -> j_aUD[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUE[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUE[tau:1] -> j_aUD[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUE[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUE[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUE[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aUD[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUE[tau:1] -> j_aUD[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aUD[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUE[tau:1] -> j_aUD[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aUD[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aUD[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aUD[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUE[tau:1] -> j_aUD[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUE[tau:1] -> j_aUD[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j_aUD[tau:1]
a_aLk
lk1 a_aLk
u_tys
tclvl 1
k_aUu[tau:1] ~ j_aUD[tau:1]
arising from a type equality k_aUu[tau:1] ~ j_aUD[tau:1]
found filled tyvar k_aUu[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUu[tau:1]
j_aUD[tau:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aUE[tau:1]
b_aLj
lk1 b_aLj
u_tys
tclvl 1
k_aUt[tau:1] ~ i_aUE[tau:1]
arising from a type equality k_aUt[tau:1] ~ i_aUE[tau:1]
found filled tyvar k_aUt[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUt[tau:1]
i_aUE[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aUC[tau:1]
arising from a type equality * ~ TYPE t_aUC[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUC[tau:1]
arising from a type equality * ~ TYPE t_aUC[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUC[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUC[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUC[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aUA[tau:1]
arising from a type equality * ~ TYPE t_aUA[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUA[tau:1]
arising from a type equality * ~ TYPE t_aUA[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUA[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUA[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUA[tau:1]
<*>_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
tcImplicitTKBndrs
[b_aLj, a_aLk]
[b_aLj[sk:1], a_aLk[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aUF
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aUG
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aL3 :-> p_aL3[sk:1], aL2 :-> i_aL2[sk:1]]
dv_tvs = []}
[aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
quantifyTyVars
globals: [aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
env2
[(b_aLn, Type variable ‘b_aLn’ = b_aLn[sk:1]),
(a_aLo, Type variable ‘a_aLo’ = a_aLo[sk:1])]
lk1 ~
tcTyVar2a
~
forall k. k -> k -> Constraint
tc_infer_args (invis) @k_aSe
tc_infer_args (vis)
[anon] k
Op p_aL3
lk1 Op
instantiating tybinders:
@j_aLv := j_aUK[tau:1]
@i_aLu := i_aUL[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aUL[tau:1] -> j_aUK[tau:1] -> *)
-> j_aUK[tau:1] -> i_aUL[tau:1] -> *
tc_infer_args (vis)
[anon] i_aUL[tau:1] -> j_aUK[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUL[tau:1] -> j_aUK[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUL[tau:1] -> j_aUK[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUL[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUL[tau:1] -> j_aUK[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUL[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUL[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUL[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aUK[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUL[tau:1] -> j_aUK[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aUK[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUL[tau:1] -> j_aUK[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aUK[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aUK[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aUK[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUL[tau:1] -> j_aUK[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUL[tau:1] -> j_aUK[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
j_aUK[tau:1] -> i_aUL[tau:1] -> * ~ k_aUJ[tau:1]
arising from a type equality j_aUK[tau:1] -> i_aUL[tau:1] -> *
~
k_aUJ[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aUJ[tau:1] ~ i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aUJ[tau:1] ~ i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aUJ[tau:1] := i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys yields no coercion
checkExpectedKind
j_aUK[tau:1] -> i_aUL[tau:1] -> *
k_aUJ[tau:1]
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] k
Y p_aL3
lk1 Y
tcTyVar2a
Y
forall j i. (i -> j -> *) -> j -> i -> *
tc_infer_args (invis) @j_aLA
tc_infer_args (invis) @i_aLz
tc_infer_args (vis)
[anon] i -> j -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUN[tau:1] -> j_aUM[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUN[tau:1] -> j_aUM[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUN[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUN[tau:1] -> j_aUM[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUN[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUN[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUN[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aUM[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUN[tau:1] -> j_aUM[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aUM[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUN[tau:1] -> j_aUM[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aUM[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aUM[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aUM[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUN[tau:1] -> j_aUM[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUN[tau:1] -> j_aUM[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
j_aUM[tau:1] -> i_aUN[tau:1] -> * ~ k_aUJ[tau:1]
arising from a type equality j_aUM[tau:1] -> i_aUN[tau:1] -> *
~
k_aUJ[tau:1]
found filled tyvar k_aUJ[tau:1] :-> i_aL2[sk:1] -> i_aL2[sk:1] -> *
u_tys
tclvl 1
j_aUM[tau:1] ~ i_aL2[sk:1]
arising from a type equality j_aUM[tau:1] -> i_aUN[tau:1] -> *
~
k_aUJ[tau:1]
found filled tyvar j_aUM[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aUN[tau:1] -> * ~ i_aL2[sk:1] -> *
arising from a type equality j_aUM[tau:1] -> i_aUN[tau:1] -> *
~
k_aUJ[tau:1]
u_tys
tclvl 1
i_aUN[tau:1] ~ i_aL2[sk:1]
arising from a type equality j_aUM[tau:1] -> i_aUN[tau:1] -> *
~
k_aUJ[tau:1]
found filled tyvar i_aUN[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality j_aUM[tau:1] -> i_aUN[tau:1] -> *
~
k_aUJ[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a type equality j_aUM[tau:1] -> i_aUN[tau:1] -> *
~
k_aUJ[tau:1]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
j_aUM[tau:1] -> i_aUN[tau:1] -> *
k_aUJ[tau:1]
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 Op
instantiating tybinders:
@j_aLv := j_aUR[tau:1]
@i_aLu := i_aUS[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aUS[tau:1] -> j_aUR[tau:1] -> *)
-> j_aUR[tau:1] -> i_aUS[tau:1] -> *
tc_infer_args (vis)
[anon] i_aUS[tau:1] -> j_aUR[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUS[tau:1] -> j_aUR[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUS[tau:1] -> j_aUR[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUS[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUS[tau:1] -> j_aUR[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUS[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUS[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUS[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aUR[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUS[tau:1] -> j_aUR[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aUR[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUS[tau:1] -> j_aUR[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aUR[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aUR[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aUR[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUS[tau:1] -> j_aUR[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUS[tau:1] -> j_aUR[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j_aUR[tau:1]
b_aLn
lk1 b_aLn
u_tys
tclvl 1
k_aUH[tau:1] ~ j_aUR[tau:1]
arising from a type equality k_aUH[tau:1] ~ j_aUR[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aUH[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aUH[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aUH[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUH[tau:1]
j_aUR[tau:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aUS[tau:1]
a_aLo
lk1 a_aLo
u_tys
tclvl 1
k_aUI[tau:1] ~ i_aUS[tau:1]
arising from a type equality k_aUI[tau:1] ~ i_aUS[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aUI[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aUI[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aUI[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUI[tau:1]
i_aUS[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aUP[tau:1]
arising from a type equality * ~ TYPE t_aUP[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUP[tau:1]
arising from a type equality * ~ TYPE t_aUP[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUP[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUP[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUP[tau:1]
<*>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLo
lk1 a_aLo
u_tys
tclvl 1
k_aUI[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aUI[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aUI[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUI[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLn
lk1 b_aLn
u_tys
tclvl 1
k_aUH[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aUH[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aUH[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUH[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aUQ[tau:1]
arising from a type equality * ~ TYPE t_aUQ[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUQ[tau:1]
arising from a type equality * ~ TYPE t_aUQ[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUQ[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUQ[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUQ[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aUO[tau:1]
arising from a type equality * ~ TYPE t_aUO[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUO[tau:1]
arising from a type equality * ~ TYPE t_aUO[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUO[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUO[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUO[tau:1]
<*>_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
tcImplicitTKBndrs
[b_aLn, a_aLo]
[b_aLn[sk:1], a_aLo[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aUT
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aUU
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aL3 :-> p_aL3[sk:1], aL2 :-> i_aL2[sk:1]]
dv_tvs = []}
[aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
quantifyTyVars
globals: [aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
ClsSig 1 [id]
env2 [(a_aL5, Type variable ‘a_aL5’ = a_aL5[sk:1])]
lk1 Ob
instantiating tybinders: @i_aL2 := i_aUW[tau:1]
tcTyVar2b
Ob :: forall i. (i -> i -> *) -> i -> Constraint
(i_aUW[tau:1] -> i_aUW[tau:1] -> *) -> i_aUW[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aUW[tau:1] -> i_aUW[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aUW[tau:1] -> i_aUW[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUW[tau:1] -> i_aUW[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUW[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUW[tau:1] -> i_aUW[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aUW[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aUW[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aUW[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aUW[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUW[tau:1] -> i_aUW[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aUW[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUW[tau:1] -> i_aUW[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aUW[tau:1] -> i_aUW[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aUW[tau:1] -> i_aUW[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] i_aUW[tau:1]
a_aL5
lk1 a_aL5
u_tys
tclvl 1
k_aUV[tau:1] ~ i_aUW[tau:1]
arising from a type equality k_aUV[tau:1] ~ i_aUW[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aUV[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aUV[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aUV[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUV[tau:1]
i_aUW[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aL5
lk1 a_aL5
u_tys
tclvl 1
k_aUV[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aUV[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aUV[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUV[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aL5
lk1 a_aL5
u_tys
tclvl 1
k_aUV[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aUV[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aUV[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aUV[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aUX[tau:1]
arising from a type equality * ~ TYPE t_aUX[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aUX[tau:1]
arising from a type equality * ~ TYPE t_aUX[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aUX[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aUX[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aUX[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aL5]
[a_aL5[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aUY
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aUZ
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aL3 :-> p_aL3[sk:1], aL2 :-> i_aL2[sk:1]]
dv_tvs = []}
[aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
quantifyTyVars
globals: [aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
ClsSig 2 [id]
ClsSig 1 [.]
env2
[(b_aL6, Type variable ‘b_aL6’ = b_aL6[sk:1]),
(c_aL7, Type variable ‘c_aL7’ = c_aL7[sk:1]),
(a_aL8, Type variable ‘a_aL8’ = a_aL8[sk:1])]
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aL6
lk1 b_aL6
u_tys
tclvl 1
k_aV0[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aV0[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aV0[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aV0[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aV0[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aV0[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
c_aL7
lk1 c_aL7
u_tys
tclvl 1
k_aV1[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aV1[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aV1[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aV1[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aV1[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aV1[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aV3[tau:1]
arising from a type equality * ~ TYPE t_aV3[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aV3[tau:1]
arising from a type equality * ~ TYPE t_aV3[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aV3[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aV3[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aV3[tau:1]
<*>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aL8
lk1 a_aL8
u_tys
tclvl 1
k_aV2[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aV2[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aV2[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aV2[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aV2[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aV2[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aL6
lk1 b_aL6
u_tys
tclvl 1
k_aV0[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aV0[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aV0[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aV0[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aV5[tau:1]
arising from a type equality * ~ TYPE t_aV5[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aV5[tau:1]
arising from a type equality * ~ TYPE t_aV5[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aV5[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aV5[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aV5[tau:1]
<*>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aL8
lk1 a_aL8
u_tys
tclvl 1
k_aV2[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aV2[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aV2[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aV2[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
c_aL7
lk1 c_aL7
u_tys
tclvl 1
k_aV1[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aV1[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aV1[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aV1[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aV6[tau:1]
arising from a type equality * ~ TYPE t_aV6[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aV6[tau:1]
arising from a type equality * ~ TYPE t_aV6[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aV6[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aV6[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aV6[tau:1]
<*>_N
u_tys
tclvl 1
* ~ TYPE t_aV4[tau:1]
arising from a type equality * ~ TYPE t_aV4[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aV4[tau:1]
arising from a type equality * ~ TYPE t_aV4[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aV4[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aV4[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aV4[tau:1]
<*>_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
tcImplicitTKBndrs
[b_aL6, c_aL7, a_aL8]
[b_aL6[sk:1], c_aL7[sk:1], a_aL8[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aV7
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aV8
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aL3 :-> p_aL3[sk:1], aL2 :-> i_aL2[sk:1]]
dv_tvs = []}
[aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
quantifyTyVars
globals: [aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
ClsSig 2 [.]
ClsSig 1 [source]
env2
[(a_aL9, Type variable ‘a_aL9’ = a_aL9[sk:1]),
(b_aLa, Type variable ‘b_aLa’ = b_aLa[sk:1])]
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aL9
lk1 a_aL9
u_tys
tclvl 1
k_aV9[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aV9[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aV9[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aV9[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aV9[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aV9[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLa
lk1 b_aLa
u_tys
tclvl 1
k_aVa[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aVa[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aVa[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aVa[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aVa[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVa[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aVb[tau:1]
arising from a type equality * ~ TYPE t_aVb[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aVb[tau:1]
arising from a type equality * ~ TYPE t_aVb[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aVb[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aVb[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aVb[tau:1]
<*>_N
lk1 Dict
tcTyVar2a
Dict
Constraint -> *
tc_infer_args (vis)
[anon] Constraint
(Ob p_aL3 a_aL9)
lk1 Ob
instantiating tybinders: @i_aL2 := i_aVd[tau:1]
tcTyVar2b
Ob :: forall i. (i -> i -> *) -> i -> Constraint
(i_aVd[tau:1] -> i_aVd[tau:1] -> *) -> i_aVd[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aVd[tau:1] -> i_aVd[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aVd[tau:1] -> i_aVd[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVd[tau:1] -> i_aVd[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aVd[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVd[tau:1] -> i_aVd[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aVd[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aVd[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aVd[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aVd[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVd[tau:1] -> i_aVd[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aVd[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVd[tau:1] -> i_aVd[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVd[tau:1] -> i_aVd[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aVd[tau:1] -> i_aVd[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] i_aVd[tau:1]
a_aL9
lk1 a_aL9
u_tys
tclvl 1
k_aV9[tau:1] ~ i_aVd[tau:1]
arising from a type equality k_aV9[tau:1] ~ i_aVd[tau:1]
found filled tyvar k_aV9[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aV9[tau:1]
i_aVd[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
u_tys
tclvl 1
* ~ TYPE t_aVc[tau:1]
arising from a type equality * ~ TYPE t_aVc[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aVc[tau:1]
arising from a type equality * ~ TYPE t_aVc[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aVc[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aVc[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aVc[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aL9, b_aLa]
[a_aL9[sk:1], b_aLa[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aVe
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aVf
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aL3 :-> p_aL3[sk:1], aL2 :-> i_aL2[sk:1]]
dv_tvs = []}
[aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
quantifyTyVars
globals: [aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
ClsSig 2 [source]
ClsSig 1 [target]
env2
[(a_aLd, Type variable ‘a_aLd’ = a_aLd[sk:1]),
(b_aLe, Type variable ‘b_aLe’ = b_aLe[sk:1])]
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLd
lk1 a_aLd
u_tys
tclvl 1
k_aVg[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aVg[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aVg[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aVg[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aVg[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVg[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLe
lk1 b_aLe
u_tys
tclvl 1
k_aVh[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aVh[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aVh[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aVh[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aVh[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVh[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aVi[tau:1]
arising from a type equality * ~ TYPE t_aVi[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aVi[tau:1]
arising from a type equality * ~ TYPE t_aVi[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aVi[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aVi[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aVi[tau:1]
<*>_N
lk1 Dict
tcTyVar2a
Dict
Constraint -> *
tc_infer_args (vis)
[anon] Constraint
(Ob p_aL3 b_aLe)
lk1 Ob
instantiating tybinders: @i_aL2 := i_aVk[tau:1]
tcTyVar2b
Ob :: forall i. (i -> i -> *) -> i -> Constraint
(i_aVk[tau:1] -> i_aVk[tau:1] -> *) -> i_aVk[tau:1] -> Constraint
tc_infer_args (vis)
[anon] i_aVk[tau:1] -> i_aVk[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aVk[tau:1] -> i_aVk[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVk[tau:1] -> i_aVk[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aVk[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVk[tau:1] -> i_aVk[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aVk[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aVk[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aVk[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ i_aVk[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVk[tau:1] -> i_aVk[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aVk[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVk[tau:1] -> i_aVk[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVk[tau:1] -> i_aVk[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aVk[tau:1] -> i_aVk[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] i_aVk[tau:1]
b_aLe
lk1 b_aLe
u_tys
tclvl 1
k_aVh[tau:1] ~ i_aVk[tau:1]
arising from a type equality k_aVh[tau:1] ~ i_aVk[tau:1]
found filled tyvar k_aVh[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVh[tau:1]
i_aVk[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality Constraint ~ Constraint
u_tys yields no coercion
checkExpectedKind
Constraint
Constraint
<Constraint>_N
u_tys
tclvl 1
* ~ TYPE t_aVj[tau:1]
arising from a type equality * ~ TYPE t_aVj[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aVj[tau:1]
arising from a type equality * ~ TYPE t_aVj[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aVj[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aVj[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aVj[tau:1]
<*>_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
tcImplicitTKBndrs
[a_aLd, b_aLe]
[a_aLd[sk:1], b_aLe[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aVl
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aVm
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aL3 :-> p_aL3[sk:1], aL2 :-> i_aL2[sk:1]]
dv_tvs = []}
[aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
quantifyTyVars
globals: [aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
ClsSig 2 [target]
ClsSig 1 [op]
env2
[(b_aLh, Type variable ‘b_aLh’ = b_aLh[sk:1]),
(a_aLi, Type variable ‘a_aLi’ = a_aLi[sk:1])]
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLh
lk1 b_aLh
u_tys
tclvl 1
k_aVn[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aVn[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aVn[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aVn[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aVn[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVn[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLi
lk1 a_aLi
u_tys
tclvl 1
k_aVo[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aVo[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aVo[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aVo[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aVo[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVo[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aVp[tau:1]
arising from a type equality * ~ TYPE t_aVp[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aVp[tau:1]
arising from a type equality * ~ TYPE t_aVp[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aVp[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aVp[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aVp[tau:1]
<*>_N
lk1 Op
instantiating tybinders:
@j_aLv := j_aVr[tau:1]
@i_aLu := i_aVs[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aVs[tau:1] -> j_aVr[tau:1] -> *)
-> j_aVr[tau:1] -> i_aVs[tau:1] -> *
tc_infer_args (vis)
[anon] i_aVs[tau:1] -> j_aVr[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aVs[tau:1] -> j_aVr[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVs[tau:1] -> j_aVr[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aVs[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVs[tau:1] -> j_aVr[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aVs[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aVs[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aVs[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aVr[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVs[tau:1] -> j_aVr[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aVr[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVs[tau:1] -> j_aVr[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aVr[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aVr[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aVr[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVs[tau:1] -> j_aVr[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aVs[tau:1] -> j_aVr[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j_aVr[tau:1]
a_aLi
lk1 a_aLi
u_tys
tclvl 1
k_aVo[tau:1] ~ j_aVr[tau:1]
arising from a type equality k_aVo[tau:1] ~ j_aVr[tau:1]
found filled tyvar k_aVo[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVo[tau:1]
j_aVr[tau:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aVs[tau:1]
b_aLh
lk1 b_aLh
u_tys
tclvl 1
k_aVn[tau:1] ~ i_aVs[tau:1]
arising from a type equality k_aVn[tau:1] ~ i_aVs[tau:1]
found filled tyvar k_aVn[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVn[tau:1]
i_aVs[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aVq[tau:1]
arising from a type equality * ~ TYPE t_aVq[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aVq[tau:1]
arising from a type equality * ~ TYPE t_aVq[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aVq[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aVq[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aVq[tau:1]
<*>_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
tcImplicitTKBndrs
[b_aLh, a_aLi]
[b_aLh[sk:1], a_aLi[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aVt
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aVu
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aL3 :-> p_aL3[sk:1], aL2 :-> i_aL2[sk:1]]
dv_tvs = []}
[aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
quantifyTyVars
globals: [aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
ClsSig 2 [op]
ClsSig 1 [unop]
env2
[(b_aLl, Type variable ‘b_aLl’ = b_aLl[sk:1]),
(a_aLm, Type variable ‘a_aLm’ = a_aLm[sk:1])]
lk1 Op
instantiating tybinders:
@j_aLv := j_aVz[tau:1]
@i_aLu := i_aVA[tau:1]
tcTyVar2b
Op :: forall j i. (i -> j -> *) -> j -> i -> *
(i_aVA[tau:1] -> j_aVz[tau:1] -> *)
-> j_aVz[tau:1] -> i_aVA[tau:1] -> *
tc_infer_args (vis)
[anon] i_aVA[tau:1] -> j_aVz[tau:1] -> *
p_aL3
lk1 p_aL3
u_tys
tclvl 1
i_aL2[sk:1] -> i_aL2[sk:1] -> * ~ i_aVA[tau:1] -> j_aVz[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVA[tau:1] -> j_aVz[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ i_aVA[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVA[tau:1] -> j_aVz[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aVA[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aVA[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aVA[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aL2[sk:1] -> * ~ j_aVz[tau:1] -> *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVA[tau:1] -> j_aVz[tau:1] -> *
u_tys
tclvl 1
i_aL2[sk:1] ~ j_aVz[tau:1]
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVA[tau:1] -> j_aVz[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
j_aVz[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aVz[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aVz[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aL2[sk:1] -> i_aL2[sk:1] -> *
~
i_aVA[tau:1] -> j_aVz[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aL2[sk:1] -> i_aL2[sk:1] -> *
i_aVA[tau:1] -> j_aVz[tau:1] -> *
<i_aL2[sk:1] -> i_aL2[sk:1] -> *>_N
tc_infer_args (vis)
[anon] j_aVz[tau:1]
b_aLl
lk1 b_aLl
u_tys
tclvl 1
k_aVv[tau:1] ~ j_aVz[tau:1]
arising from a type equality k_aVv[tau:1] ~ j_aVz[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aVv[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aVv[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aVv[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVv[tau:1]
j_aVz[tau:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aVA[tau:1]
a_aLm
lk1 a_aLm
u_tys
tclvl 1
k_aVw[tau:1] ~ i_aVA[tau:1]
arising from a type equality k_aVw[tau:1] ~ i_aVA[tau:1]
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aVw[tau:1] ~ i_aL2[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aVw[tau:1] ~ i_aL2[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aVw[tau:1] := i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVw[tau:1]
i_aVA[tau:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aVx[tau:1]
arising from a type equality * ~ TYPE t_aVx[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aVx[tau:1]
arising from a type equality * ~ TYPE t_aVx[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aVx[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aVx[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aVx[tau:1]
<*>_N
lk1 p_aL3
tc_infer_args (vis)
[anon] i_aL2[sk:1]
a_aLm
lk1 a_aLm
u_tys
tclvl 1
k_aVw[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aVw[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aVw[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVw[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
tc_infer_args (vis)
[anon] i_aL2[sk:1]
b_aLl
lk1 b_aLl
u_tys
tclvl 1
k_aVv[tau:1] ~ i_aL2[sk:1]
arising from a type equality k_aVv[tau:1] ~ i_aL2[sk:1]
found filled tyvar k_aVv[tau:1] :-> i_aL2[sk:1]
u_tys yields no coercion
checkExpectedKind
k_aVv[tau:1]
i_aL2[sk:1]
<i_aL2[sk:1]>_N
u_tys
tclvl 1
* ~ TYPE t_aVy[tau:1]
arising from a type equality * ~ TYPE t_aVy[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ t_aVy[tau:1]
arising from a type equality * ~ TYPE t_aVy[tau:1]
u_tys
tclvl 1
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep
arising from a kind equality arising from
t_aVy[tau:1] ~ 'GHC.Types.LiftedRep
u_tys yields no coercion
writeMetaTyVar t_aVy[tau:1] := 'GHC.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
*
TYPE t_aVy[tau:1]
<*>_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
tcImplicitTKBndrs
[b_aLl, a_aLm]
[b_aLl[sk:1], a_aLm[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aVB
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aVC
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aL3 :-> p_aL3[sk:1], aL2 :-> i_aL2[sk:1]]
dv_tvs = []}
[aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
quantifyTyVars
globals: [aL2 :-> i_aL2[sk:1], aL3 :-> p_aL3[sk:1]]
nondep: []
dep: []
dep_kvs' []
nondep_tvs' []
ClsSig 2 [unop]
tcClassSigs 2 Category
env2 [(p_aL3, Type variable ‘p_aL3’ = p_aL3[sk:1])]
open type family: Ob
tcDefaultAssocDecl Ob
env2 [(p_aL4, Type variable ‘p_aL4’ = p_aL4[sk:1])]
tc_infer_args (invis) @i_aL2
tc_infer_args (vis)
[anon] i -> i -> *
p_aL4
lk1 p_aL4
u_tys
tclvl 1
k_aVD[tau:1] ~ i_aVE[tau:1] -> i_aVE[tau:1] -> *
arising from a type equality k_aVD[tau:1]
~
i_aVE[tau:1] -> i_aVE[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
k_aVD[tau:1] ~ i_aVE[tau:1] -> i_aVE[tau:1] -> *
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
k_aVD[tau:1] ~ i_aVE[tau:1] -> i_aVE[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar k_aVD[tau:1] := i_aVE[tau:1] -> i_aVE[tau:1] -> *
u_tys yields no coercion
checkExpectedKind
k_aVD[tau:1]
i_aVE[tau:1] -> i_aVE[tau:1] -> *
<i_aVE[tau:1] -> i_aVE[tau:1] -> *>_N
instantiating tybinders:
lk1 Vacuous
tcTyVar2a
Vacuous
forall i. (i -> i -> *) -> i -> Constraint
tc_infer_args (invis) @i_aLr
tc_infer_args (vis)
[anon] i -> i -> *
p_aL4
lk1 p_aL4
u_tys
tclvl 1
k_aVD[tau:1] ~ i_aVF[tau:1] -> i_aVF[tau:1] -> *
arising from a type equality k_aVD[tau:1]
~
i_aVF[tau:1] -> i_aVF[tau:1] -> *
found filled tyvar
k_aVD[tau:1] :-> i_aVE[tau:1] -> i_aVE[tau:1] -> *
u_tys
tclvl 1
i_aVE[tau:1] ~ i_aVF[tau:1]
arising from a type equality k_aVD[tau:1]
~
i_aVF[tau:1] -> i_aVF[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aVE[tau:1] ~ i_aVF[tau:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aVE[tau:1] ~ i_aVF[tau:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aVE[tau:1] := i_aVF[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aVE[tau:1] -> * ~ i_aVF[tau:1] -> *
arising from a type equality k_aVD[tau:1]
~
i_aVF[tau:1] -> i_aVF[tau:1] -> *
u_tys
tclvl 1
i_aVE[tau:1] ~ i_aVF[tau:1]
arising from a type equality k_aVD[tau:1]
~
i_aVF[tau:1] -> i_aVF[tau:1] -> *
found filled tyvar i_aVE[tau:1] :-> i_aVF[tau:1]
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality k_aVD[tau:1]
~
i_aVF[tau:1] -> i_aVF[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
k_aVD[tau:1]
i_aVF[tau:1] -> i_aVF[tau:1] -> *
<i_aVF[tau:1] -> i_aVF[tau:1] -> *>_N
u_tys
tclvl 1
i_aVF[tau:1] -> Constraint ~ i_aVE[tau:1] -> Constraint
arising from a type equality i_aVF[tau:1] -> Constraint
~
i_aVE[tau:1] -> Constraint
u_tys
tclvl 1
i_aVF[tau:1] ~ i_aVE[tau:1]
arising from a type equality i_aVF[tau:1] -> Constraint
~
i_aVE[tau:1] -> Constraint
u_tys yields no coercion
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality i_aVF[tau:1] -> Constraint
~
i_aVE[tau:1] -> Constraint
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aVF[tau:1] -> Constraint
i_aVE[tau:1] -> Constraint
<i_aVF[tau:1] -> Constraint>_N
tcImplicitTKBndrs
[p_aL4]
[p_aL4[sk:1]]
solveEqualities { wanted = WC {}
newTcEvBinds unique = aVG
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aVH
reportAllUnsolved }
quantifyZonkedTyVars
DV {dv_kvs = [aVF :-> i_aVF[tau:1]]
dv_tvs = [aL4 :-> p_aL4[sk:1], aVF :-> i_aVF[tau:1]]}
[]
Skolemising i_aVF[tau:1] := i_aVF[sk:1]
writeMetaTyVar i_aVF[tau:1] := i_aVF[sk:1]
quantifyTyVars
globals: []
nondep: [p_aL4[sk:1]]
dep: [i_aVF[tau:1]]
dep_kvs' [i_aVF[sk:1]]
nondep_tvs' [p_aL4[sk:1]]
tcFamTyPats
Ob
[i_aVE[tau:1], p_aL4[sk:1]]
[i_aVF[sk:1], p_aL4[sk:1]]
env2
[(i_aVF, Type variable ‘i_aVF’ = i_aVF[sk:1]),
(p_aL4, Type variable ‘p_aL4’ = p_aL4[sk:1])]
lk1 Vacuous
tcTyVar2a
Vacuous
forall i. (i -> i -> *) -> i -> Constraint
tc_infer_args (invis) @i_aLr
tc_infer_args (vis)
[anon] i -> i -> *
p_aL4
lk1 p_aL4
u_tys
tclvl 1
i_aVF[sk:1] -> i_aVF[sk:1] -> * ~ i_aVI[tau:1] -> i_aVI[tau:1] -> *
arising from a type equality i_aVF[sk:1] -> i_aVF[sk:1] -> *
~
i_aVI[tau:1] -> i_aVI[tau:1] -> *
u_tys
tclvl 1
i_aVF[sk:1] ~ i_aVI[tau:1]
arising from a type equality i_aVF[sk:1] -> i_aVF[sk:1] -> *
~
i_aVI[tau:1] -> i_aVI[tau:1] -> *
u_tys
tclvl 1
* ~ *
arising from a kind equality arising from
i_aVI[tau:1] ~ i_aVF[sk:1]
u_tys
tclvl 1
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aVI[tau:1] ~ i_aVF[sk:1]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aVI[tau:1] := i_aVF[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
i_aVF[sk:1] -> * ~ i_aVI[tau:1] -> *
arising from a type equality i_aVF[sk:1] -> i_aVF[sk:1] -> *
~
i_aVI[tau:1] -> i_aVI[tau:1] -> *
u_tys
tclvl 1
i_aVF[sk:1] ~ i_aVI[tau:1]
arising from a type equality i_aVF[sk:1] -> i_aVF[sk:1] -> *
~
i_aVI[tau:1] -> i_aVI[tau:1] -> *
u_tys yields no coercion
u_tys
tclvl 1
* ~ *
arising from a type equality i_aVF[sk:1] -> i_aVF[sk:1] -> *
~
i_aVI[tau:1] -> i_aVI[tau:1] -> *
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aVF[sk:1] -> i_aVF[sk:1] -> *
i_aVI[tau:1] -> i_aVI[tau:1] -> *
<i_aVF[sk:1] -> i_aVF[sk:1] -> *>_N
u_tys
tclvl 1
i_aVI[tau:1] -> Constraint ~ i_aVE[tau:1] -> Constraint
arising from a type equality i_aVI[tau:1] -> Constraint
~
i_aVE[tau:1] -> Constraint
u_tys
tclvl 1
i_aVI[tau:1] ~ i_aVE[tau:1]
arising from a type equality i_aVI[tau:1] -> Constraint
~
i_aVE[tau:1] -> Constraint
found filled tyvar i_aVI[tau:1] :-> i_aVF[sk:1]
u_tys yields no coercion
u_tys
tclvl 1
Constraint ~ Constraint
arising from a type equality i_aVI[tau:1] -> Constraint
~
i_aVE[tau:1] -> Constraint
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind
i_aVI[tau:1] -> Constraint
i_aVE[tau:1] -> Constraint
<i_aVF[sk:1] -> Constraint>_N
solveEqualities { wanted = WC {}
newTcEvBinds unique = aVJ
solveWanteds { WC {}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
End solveEqualities }
reportAllUnsolved {
newTcEvBinds unique = aVK
reportAllUnsolved }
tcClassDecl
[]
[@i_aL2, p_aL3]
[]
Starting synonym cycle check [Nat, Functor, Category]
Done synonym cycle check [Nat, Functor, Category]
Starting family consistency check [Nat, Functor, Category]
Done family consistency [Nat, Functor, Category]
Starting validity check [Nat, Functor, Category]
Starting validity for tycon Nat
checkValidTyCon
Nat
Nothing
cvtc1 Nat
cvtc2 Nat
checkValidDataCon
Nat
Nat
[i_aKK, j_aKM, p_aKL, q_aKN, f_aKO, g_aKP]
Nat p q f g :: *
Nat p q f g :: *
checkValidDataCon 2
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
checkValidType
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g :: *
check_type
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
True
check_valid_theta [Functor p q f, Functor p q g]
check_type
forall (a :: i). Ob p a => q (f a) (g a)
True
check_valid_theta [Ob p a]
Ambiguity check for
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
tcSubType_NC
the type of the constructor ‘Nat’
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
tc_sub_tc_type (general case)
ty_actual = forall i j (p :: i -> i -> *) (q :: j
-> j -> *) (f :: i -> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
ty_expected = forall i j (p :: i -> i -> *) (q :: j
-> j -> *) (f :: i -> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
tcSkolemise
tcSkolemise
1
expected_ty forall i j (p :: i -> i -> *) (q :: j
-> j -> *) (f :: i -> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
inst tyvars [i_aVX[sk:2], j_aVY[sk:2], p_aVZ[sk:2], q_aW0[sk:2],
f_aW1[sk:2], g_aW2[sk:2]]
given [$dFunctor_aW3, $dFunctor_aW4]
inst type (forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
tc_sub_type_ds
ty_actual = forall i j (p :: i -> i -> *) (q :: j
-> j -> *) (f :: i -> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
ty_expected = (forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
instCallConstraints [$dFunctor_aWb, $dFunctor_aWc]
Instantiating
all tyvars? True
origin arising from a type equality forall i j (p :: i
-> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i
-> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
~
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i
-> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
type forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
theta [Functor p q f, Functor p q g]
leave_bndrs []
with [i_aW5[tau:2], j_aW6[tau:2], p_aW7[tau:2], q_aW8[tau:2],
f_aW9[tau:2], g_aWa[tau:2]]
theta: [Functor p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2],
Functor p_aW7[tau:2] q_aW8[tau:2] g_aWa[tau:2]]
tc_sub_type_ds
ty_actual = (forall (a :: i_aW5[tau:2]).
Ob p_aW7[tau:2] a =>
q_aW8[tau:2] (f_aW9[tau:2] a) (g_aWa[tau:2] a))
-> Nat p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
ty_expected = (forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
tc_sub_type_ds
ty_actual = Nat
p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
ty_expected = Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
deeply_instantiate final subst
origin: arising from a type equality forall i j (p :: i
-> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i
-> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
~
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i
-> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
type: Nat p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
new type: Nat p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
subst: [TCvSubst
In scope: InScope {i_aW5 j_aW6 p_aW7 q_aW8 f_aW9 g_aWa}
Type env: []
Co env: []]
u_tys
tclvl 2
Nat p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
~
Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
arising from a type equality (forall (a :: i_aW5[tau:2]).
Ob p_aW7[tau:2] a =>
q_aW8[tau:2] (f_aW9[tau:2] a) (g_aWa[tau:2] a))
-> Nat p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
~
(forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
u_tys
tclvl 2
i_aW5[tau:2] ~ i_aVX[sk:2]
arising from a type equality (forall (a :: i_aW5[tau:2]).
Ob p_aW7[tau:2] a =>
q_aW8[tau:2] (f_aW9[tau:2] a) (g_aWa[tau:2] a))
-> Nat p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
~
(forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
i_aW5[tau:2] ~ i_aVX[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aW5[tau:2] ~ i_aVX[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aW5[tau:2] := i_aVX[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
j_aW6[tau:2] ~ j_aVY[sk:2]
arising from a type equality (forall (a :: i_aW5[tau:2]).
Ob p_aW7[tau:2] a =>
q_aW8[tau:2] (f_aW9[tau:2] a) (g_aWa[tau:2] a))
-> Nat p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
~
(forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
j_aW6[tau:2] ~ j_aVY[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aW6[tau:2] ~ j_aVY[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aW6[tau:2] := j_aVY[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
p_aW7[tau:2] ~ p_aVZ[sk:2]
arising from a type equality (forall (a :: i_aW5[tau:2]).
Ob p_aW7[tau:2] a =>
q_aW8[tau:2] (f_aW9[tau:2] a) (g_aWa[tau:2] a))
-> Nat p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
~
(forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
u_tys
tclvl 2
i_aVX[sk:2] -> i_aVX[sk:2] -> * ~ i_aW5[tau:2] -> i_aW5[tau:2] -> *
arising from a kind equality arising from
p_aW7[tau:2] ~ p_aVZ[sk:2]
u_tys
tclvl 2
i_aVX[sk:2] ~ i_aW5[tau:2]
arising from a kind equality arising from
p_aW7[tau:2] ~ p_aVZ[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
i_aVX[sk:2] -> * ~ i_aW5[tau:2] -> *
arising from a kind equality arising from
p_aW7[tau:2] ~ p_aVZ[sk:2]
u_tys
tclvl 2
i_aVX[sk:2] ~ i_aW5[tau:2]
arising from a kind equality arising from
p_aW7[tau:2] ~ p_aVZ[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
p_aW7[tau:2] ~ p_aVZ[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar p_aW7[tau:2] := p_aVZ[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
q_aW8[tau:2] ~ q_aW0[sk:2]
arising from a type equality (forall (a :: i_aW5[tau:2]).
Ob p_aW7[tau:2] a =>
q_aW8[tau:2] (f_aW9[tau:2] a) (g_aWa[tau:2] a))
-> Nat p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
~
(forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
u_tys
tclvl 2
j_aVY[sk:2] -> j_aVY[sk:2] -> * ~ j_aW6[tau:2] -> j_aW6[tau:2] -> *
arising from a kind equality arising from
q_aW8[tau:2] ~ q_aW0[sk:2]
u_tys
tclvl 2
j_aVY[sk:2] ~ j_aW6[tau:2]
arising from a kind equality arising from
q_aW8[tau:2] ~ q_aW0[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
j_aVY[sk:2] -> * ~ j_aW6[tau:2] -> *
arising from a kind equality arising from
q_aW8[tau:2] ~ q_aW0[sk:2]
u_tys
tclvl 2
j_aVY[sk:2] ~ j_aW6[tau:2]
arising from a kind equality arising from
q_aW8[tau:2] ~ q_aW0[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
q_aW8[tau:2] ~ q_aW0[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar q_aW8[tau:2] := q_aW0[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
f_aW9[tau:2] ~ f_aW1[sk:2]
arising from a type equality (forall (a :: i_aW5[tau:2]).
Ob p_aW7[tau:2] a =>
q_aW8[tau:2] (f_aW9[tau:2] a) (g_aWa[tau:2] a))
-> Nat p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
~
(forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
u_tys
tclvl 2
i_aVX[sk:2] -> j_aVY[sk:2] ~ i_aW5[tau:2] -> j_aW6[tau:2]
arising from a kind equality arising from
f_aW9[tau:2] ~ f_aW1[sk:2]
u_tys
tclvl 2
i_aVX[sk:2] ~ i_aW5[tau:2]
arising from a kind equality arising from
f_aW9[tau:2] ~ f_aW1[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
j_aVY[sk:2] ~ j_aW6[tau:2]
arising from a kind equality arising from
f_aW9[tau:2] ~ f_aW1[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar f_aW9[tau:2] := f_aW1[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
g_aWa[tau:2] ~ g_aW2[sk:2]
arising from a type equality (forall (a :: i_aW5[tau:2]).
Ob p_aW7[tau:2] a =>
q_aW8[tau:2] (f_aW9[tau:2] a) (g_aWa[tau:2] a))
-> Nat p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] g_aWa[tau:2]
~
(forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2]
u_tys
tclvl 2
i_aVX[sk:2] -> j_aVY[sk:2] ~ i_aW5[tau:2] -> j_aW6[tau:2]
arising from a kind equality arising from
g_aWa[tau:2] ~ g_aW2[sk:2]
u_tys
tclvl 2
i_aVX[sk:2] ~ i_aW5[tau:2]
arising from a kind equality arising from
g_aWa[tau:2] ~ g_aW2[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
j_aVY[sk:2] ~ j_aW6[tau:2]
arising from a kind equality arising from
g_aWa[tau:2] ~ g_aW2[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar g_aWa[tau:2] := g_aW2[sk:2]
u_tys yields no coercion
u_tys yields no coercion
tc_sub_tc_type (general case)
ty_actual = forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a)
ty_expected = forall (a :: i_aW5[tau:2]).
Ob p_aW7[tau:2] a =>
q_aW8[tau:2] (f_aW9[tau:2] a) (g_aWa[tau:2] a)
tcSkolemise
tcSkolemise
2
expected_ty forall (a :: i_aW5[tau:2]).
Ob p_aW7[tau:2] a =>
q_aW8[tau:2] (f_aW9[tau:2] a) (g_aWa[tau:2] a)
inst tyvars [a_aWe[sk:3]]
given [irred_aWf]
inst type q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
tc_sub_type_ds
ty_actual = forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a)
ty_expected = q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
instCallConstraints [irred_aWh]
Instantiating
all tyvars? True
origin arising from a type expected by the context:
forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a)
type forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a)
theta [Ob p_aVZ[sk:2] a]
leave_bndrs []
with [a_aWg[tau:3]]
theta: [Ob p_aVZ[sk:2] a_aWg[tau:3]]
tc_sub_type_ds
ty_actual = q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
ty_expected = q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
deeply_instantiate final subst
origin: arising from a type expected by the context:
forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a)
type: q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
new type: q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
subst: [TCvSubst
In scope: InScope {i_aVX j_aVY q_aW0 f_aW1 g_aW2 a_aWg}
Type env: []
Co env: []]
u_tys
tclvl 3
q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
~
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
arising from a type equality q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
~
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
u_tys
tclvl 3
q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3])
~
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3])
arising from a type equality q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
~
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
u_tys
tclvl 3
q_aW0[sk:2] ~ q_aW8[tau:2]
arising from a type equality q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
~
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
u_tys yields no coercion
u_tys
tclvl 3
f_aW1[sk:2] a_aWg[tau:3] ~ f_aW9[tau:2] a_aWe[sk:3]
arising from a type equality q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
~
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
u_tys
tclvl 3
f_aW1[sk:2] ~ f_aW9[tau:2]
arising from a type equality q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
~
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
u_tys yields no coercion
u_tys
tclvl 3
a_aWg[tau:3] ~ a_aWe[sk:3]
arising from a type equality q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
~
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
u_tys
tclvl 3
i_aVX[sk:2] ~ i_aVX[sk:2]
arising from a kind equality arising from
a_aWg[tau:3] ~ a_aWe[sk:3]
u_tys yields no coercion
writeMetaTyVar a_aWg[tau:3] := a_aWe[sk:3]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 3
g_aW2[sk:2] a_aWg[tau:3] ~ g_aWa[tau:2] a_aWe[sk:3]
arising from a type equality q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
~
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
u_tys
tclvl 3
g_aW2[sk:2] ~ g_aWa[tau:2]
arising from a type equality q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
~
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
u_tys yields no coercion
u_tys
tclvl 3
a_aWg[tau:3] ~ a_aWe[sk:3]
arising from a type equality q_aW0[sk:2] (f_aW1[sk:2] a_aWg[tau:3]) (g_aW2[sk:2] a_aWg[tau:3])
~
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3])
found filled tyvar a_aWg[tau:3] :-> a_aWe[sk:3]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
newTcEvBinds unique = aWi
newTcEvBinds unique = aWj
simplifyAmbiguityCheck {
type = forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
wanted = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aVX[sk:2]
j_aVY[sk:2]
(p_aVZ[sk:2] :: i_aVX[sk:2] -> i_aVX[sk:2] -> *)
(q_aW0[sk:2] :: j_aVY[sk:2] -> j_aVY[sk:2] -> *)
(f_aW1[sk:2] :: i_aVX[sk:2] -> j_aVY[sk:2])
(g_aW2[sk:2] :: i_aVX[sk:2] -> j_aVY[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dFunctor_aW3 :: Functor p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2]
$dFunctor_aW4 :: Functor p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]
Wanted =
WC {wc_simple =
[WD] $dFunctor_aWb {0}:: Functor
p_aW7[tau:2]
q_aW8[tau:2]
f_aW9[tau:2] (CNonCanonical)
[WD] $dFunctor_aWc {0}:: Functor
p_aW7[tau:2]
q_aW8[tau:2]
g_aWa[tau:2] (CNonCanonical)
wc_impl =
Implic {
TcLevel = 3
Skolems = (a_aWe[sk:3] :: i_aW5[tau:2])
No-eqs = False
Status = Unsolved
Given = irred_aWf :: Ob p_aW7[tau:2] a_aWe[sk:3]
Wanted =
WC {wc_simple =
[WD] irred_aWh {0}:: Ob
p_aVZ[sk:2]
a_aWg[tau:3] (CNonCanonical)}
Binds = EvBindsVar<aWi>
Needed = []
the type of the constructor ‘Nat’:
Ob p_aW7[tau:2] a_aWe[sk:3] =>
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3]) }}
Binds = EvBindsVar<aWj>
Needed = []
the type of the constructor ‘Nat’:
(Functor p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2],
Functor p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]) =>
(forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2] }}
newTcEvBinds unique = aWk
solveWanteds {
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aVX[sk:2]
j_aVY[sk:2]
(p_aVZ[sk:2] :: i_aVX[sk:2] -> i_aVX[sk:2] -> *)
(q_aW0[sk:2] :: j_aVY[sk:2] -> j_aVY[sk:2] -> *)
(f_aW1[sk:2] :: i_aVX[sk:2] -> j_aVY[sk:2])
(g_aW2[sk:2] :: i_aVX[sk:2] -> j_aVY[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dFunctor_aW3 :: Functor p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2]
$dFunctor_aW4 :: Functor p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]
Wanted =
WC {wc_simple =
[WD] $dFunctor_aWb {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] (CNonCanonical)
[WD] $dFunctor_aWc {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] g_aWa[tau:2] (CNonCanonical)
wc_impl =
Implic {
TcLevel = 3
Skolems = (a_aWe[sk:3] :: i_aW5[tau:2])
No-eqs = False
Status = Unsolved
Given = irred_aWf :: Ob p_aW7[tau:2] a_aWe[sk:3]
Wanted =
WC {wc_simple =
[WD] irred_aWh {0}:: Ob p_aVZ[sk:2] a_aWg[tau:3] (CNonCanonical)}
Binds = EvBindsVar<aWi>
Needed = []
the type of the constructor ‘Nat’:
Ob p_aW7[tau:2] a_aWe[sk:3] =>
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3]) }}
Binds = EvBindsVar<aWj>
Needed = []
the type of the constructor ‘Nat’:
(Functor p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2],
Functor p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]) =>
(forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2] }}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveNestedImplications starting {
solveImplication {
Implic {
TcLevel = 2
Skolems = i_aVX[sk:2]
j_aVY[sk:2]
(p_aVZ[sk:2] :: i_aVX[sk:2] -> i_aVX[sk:2] -> *)
(q_aW0[sk:2] :: j_aVY[sk:2] -> j_aVY[sk:2] -> *)
(f_aW1[sk:2] :: i_aVX[sk:2] -> j_aVY[sk:2])
(g_aW2[sk:2] :: i_aVX[sk:2] -> j_aVY[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dFunctor_aW3 :: Functor p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2]
$dFunctor_aW4 :: Functor p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]
Wanted =
WC {wc_simple =
[WD] $dFunctor_aWb {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] (CNonCanonical)
[WD] $dFunctor_aWc {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] g_aWa[tau:2] (CNonCanonical)
wc_impl =
Implic {
TcLevel = 3
Skolems = (a_aWe[sk:3] :: i_aW5[tau:2])
No-eqs = False
Status = Unsolved
Given = irred_aWf :: Ob p_aW7[tau:2] a_aWe[sk:3]
Wanted =
WC {wc_simple =
[WD] irred_aWh {0}:: Ob p_aVZ[sk:2] a_aWg[tau:3] (CNonCanonical)}
Binds = EvBindsVar<aWi>
Needed = []
the type of the constructor ‘Nat’:
Ob p_aW7[tau:2] a_aWe[sk:3] =>
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3]) }}
Binds = EvBindsVar<aWj>
Needed = []
the type of the constructor ‘Nat’:
(Functor p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2],
Functor p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]) =>
(forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a))
-> Nat p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] g_aW2[sk:2] }
Inerts {Unsolved goals = 0}
solveSimpleGivens {
[[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CNonCanonical),
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CNonCanonical)]
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CNonCanonical)
inerts = {Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2]
q_aW0[sk:2]
g_aW2[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CNonCanonical)
canonicalize (non-canonical)
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CNonCanonical)
canEvNC:cls
Functor [i_aVX[sk:2], j_aVY[sk:2], p_aVZ[sk:2], q_aW0[sk:2],
f_aW1[sk:2]]
addTcEvBind
aWj
[G] $dCategory_aWl = sc(($dFunctor_aW3, 0))
addTcEvBind
aWj
[G] $dCategory_aWm = sc(($dFunctor_aW3, 1))
mk_superclasses_of
Category [i_aVX[sk:2], p_aVZ[sk:2]]
False
[rKn :-> Functor]
addTcEvBind
aWj
[G] $dFunctor_aWn = sc(($dCategory_aWl, 0))
mk_superclasses_of: loop
Functor [i_aVX[sk:2], i_aVX[sk:2] -> *, Op p_aVZ[sk:2],
Nat p_aVZ[sk:2] (->), p_aVZ[sk:2]]
mk_superclasses_of
Category [j_aVY[sk:2], q_aW0[sk:2]]
False
[rKn :-> Functor]
addTcEvBind
aWj
[G] $dFunctor_aWo = sc(($dCategory_aWm, 0))
mk_superclasses_of: loop
Functor [j_aVY[sk:2], j_aVY[sk:2] -> *, Op q_aW0[sk:2],
Nat q_aW0[sk:2] (->), q_aW0[sk:2]]
Emitting fresh work
[G] $dCategory_aWl {0}:: Category p_aVZ[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
(Op p_aVZ[sk:2]) (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2] (CDictCan(psc))
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
(Op q_aW0[sk:2]) (Nat q_aW0[sk:2] (->)) q_aW0[sk:2] (CDictCan(psc))
flatten_many {
i_aVX[sk:2]
j_aVY[sk:2]
p_aVZ[sk:2]
q_aW0[sk:2]
f_aW1[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar f_aW1[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar j_aVY[sk:2]
flatten }
i_aVX[sk:2]
j_aVY[sk:2]
p_aVZ[sk:2]
q_aW0[sk:2]
f_aW1[sk:2]
canClass
[G] $dFunctor_aW3 {0}:: Functor p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2]
Functor p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2]
ContinueWith [G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
doTopReact
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
try_fundeps
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2]
q_aW0[sk:2]
f_aW1[sk:2] (CDictCan)
addInertCan }
Step 1[l:2,d:0] Kept as inert:
[G] $dFunctor_aW3 {0}:: Functor p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
inerts = {Dictionaries = [G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dFunctor_aWn {0}:: Functor
(Op p_aVZ[sk:2])
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
(Op q_aW0[sk:2])
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2]
q_aW0[sk:2]
g_aW2[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
flatten_many {
i_aVX[sk:2]
p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
flatten }
i_aVX[sk:2]
p_aVZ[sk:2]
canClass
[G] $dCategory_aWl {0}:: Category p_aVZ[sk:2]
Category p_aVZ[sk:2]
ContinueWith [G] $dCategory_aWl {0}:: Category p_aVZ[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
doTopReact [G] $dCategory_aWl {0}:: Category p_aVZ[sk:2] (CDictCan)
try_fundeps
[G] $dCategory_aWl {0}:: Category p_aVZ[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
addInertCan }
Step 2[l:2,d:0] Kept as inert:
[G] $dCategory_aWl {0}:: Category p_aVZ[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aWn {0}:: Functor
(Op p_aVZ[sk:2])
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
inerts = {Dictionaries = [G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dCategory_aWl {0}:: Category p_aVZ[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aWm {0}:: Category
q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
(Op q_aW0[sk:2])
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2]
q_aW0[sk:2]
g_aW2[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $dFunctor_aWn {0}:: Functor
(Op p_aVZ[sk:2])
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
flatten_many {
i_aVX[sk:2]
i_aVX[sk:2] -> *
Op p_aVZ[sk:2]
Nat p_aVZ[sk:2] (->)
p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
matchFamTcM
Matching: Op p_aVZ[sk:2]
Match failed
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
matchFamTcM
Matching: Op p_aVZ[sk:2]
Match failed
addTcEvBind
aWj
[G] cobox_aWq = CO <Op p_aVZ[sk:2]>_N
extendFlatCache
Op [i_aVX[sk:2], i_aVX[sk:2], p_aVZ[sk:2]]
[G]
fsk_aWp[fsk]
flatten/flat-cache miss
Op [i_aVX[sk:2], i_aVX[sk:2], p_aVZ[sk:2]]
fsk_aWp[fsk]
[G] cobox_aWq {0}:: (Op p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2] -> i_aVX[sk:2] -> *))
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
flatten }
i_aVX[sk:2]
i_aVX[sk:2] -> *
fsk_aWp[fsk]
Nat p_aVZ[sk:2] (->)
p_aVZ[sk:2]
canClass
[G] $dFunctor_aWn {0}:: Functor
(Op p_aVZ[sk:2]) (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2]
Functor fsk_aWp[fsk] (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2]
ContinueWith [G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk] (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
doTopReact
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk] (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2] (CDictCan(psc))
try_fundeps
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk] (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2] (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
addInertCan }
Step 3[l:2,d:0] Kept as inert:
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk] (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
-----------------------------
Start solver pipeline {
work item = [G] cobox_aWq {0}:: (Op p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2] -> i_aVX[sk:2] -> *)) (CFunEqCan)
inerts = {Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aWm {0}:: Category
q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
(Op q_aW0[sk:2])
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2]
q_aW0[sk:2]
g_aW2[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] cobox_aWq {0}:: (Op p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2] -> i_aVX[sk:2] -> *)) (CFunEqCan)
flatten_many {
i_aVX[sk:2]
i_aVX[sk:2]
p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
flatten }
i_aVX[sk:2]
i_aVX[sk:2]
p_aVZ[sk:2]
extendFlatCache
Op [i_aVX[sk:2], i_aVX[sk:2], p_aVZ[sk:2]]
[G]
fsk_aWp[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aWq {0}:: (Op p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2] -> i_aVX[sk:2] -> *)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aWq {0}:: (Op p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2] -> i_aVX[sk:2] -> *)) (CFunEqCan)
doTopReact
[G] cobox_aWq {0}:: (Op p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2] -> i_aVX[sk:2] -> *)) (CFunEqCan)
matchFamTcM
Matching: Op p_aVZ[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
addInertCan }
Step 4[l:2,d:0] Kept as inert:
[G] cobox_aWq {0}:: (Op p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2] -> i_aVX[sk:2] -> *))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aWq {0}:: (Op p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2] -> i_aVX[sk:2] -> *)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aWm {0}:: Category
q_aW0[sk:2] (CDictCan)
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dFunctor_aWo {0}:: Functor
(Op q_aW0[sk:2])
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2]
q_aW0[sk:2]
g_aW2[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $dCategory_aWm {0}:: Category
q_aW0[sk:2] (CDictCan)
flatten_many {
j_aVY[sk:2]
q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
flatten }
j_aVY[sk:2]
q_aW0[sk:2]
canClass
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2]
Category q_aW0[sk:2]
ContinueWith [G] $dCategory_aWm {0}:: Category q_aW0[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aWm {0}:: Category
q_aW0[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aWm {0}:: Category
q_aW0[sk:2] (CDictCan)
doTopReact [G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
try_fundeps
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aWm {0}:: Category
q_aW0[sk:2] (CDictCan)
addInertCan }
Step 5[l:2,d:0] Kept as inert:
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aWm {0}:: Category
q_aW0[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aWo {0}:: Functor
(Op q_aW0[sk:2])
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
[G] $dCategory_aWl {0}:: Category p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2]
q_aW0[sk:2]
g_aW2[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $dFunctor_aWo {0}:: Functor
(Op q_aW0[sk:2])
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
flatten_many {
j_aVY[sk:2]
j_aVY[sk:2] -> *
Op q_aW0[sk:2]
Nat q_aW0[sk:2] (->)
q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
matchFamTcM
Matching: Op q_aW0[sk:2]
Match failed
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
matchFamTcM
Matching: Op q_aW0[sk:2]
Match failed
addTcEvBind
aWj
[G] cobox_aWs = CO <Op q_aW0[sk:2]>_N
extendFlatCache
Op [j_aVY[sk:2], j_aVY[sk:2], q_aW0[sk:2]]
[G]
fsk_aWr[fsk]
flatten/flat-cache miss
Op [j_aVY[sk:2], j_aVY[sk:2], q_aW0[sk:2]]
fsk_aWr[fsk]
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2] -> j_aVY[sk:2] -> *))
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
flatten }
j_aVY[sk:2]
j_aVY[sk:2] -> *
fsk_aWr[fsk]
Nat q_aW0[sk:2] (->)
q_aW0[sk:2]
canClass
[G] $dFunctor_aWo {0}:: Functor
(Op q_aW0[sk:2]) (Nat q_aW0[sk:2] (->)) q_aW0[sk:2]
Functor fsk_aWr[fsk] (Nat q_aW0[sk:2] (->)) q_aW0[sk:2]
ContinueWith [G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk] (Nat q_aW0[sk:2] (->)) q_aW0[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
doTopReact
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk] (Nat q_aW0[sk:2] (->)) q_aW0[sk:2] (CDictCan(psc))
try_fundeps
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk] (Nat q_aW0[sk:2] (->)) q_aW0[sk:2] (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
addInertCan }
Step 6[l:2,d:0] Kept as inert:
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk] (Nat q_aW0[sk:2] (->)) q_aW0[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
-----------------------------
Start solver pipeline {
work item = [G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2] -> j_aVY[sk:2] -> *)) (CFunEqCan)
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2]
q_aW0[sk:2]
g_aW2[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2] -> j_aVY[sk:2] -> *)) (CFunEqCan)
flatten_many {
j_aVY[sk:2]
j_aVY[sk:2]
q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
flatten }
j_aVY[sk:2]
j_aVY[sk:2]
q_aW0[sk:2]
extendFlatCache
Op [j_aVY[sk:2], j_aVY[sk:2], q_aW0[sk:2]]
[G]
fsk_aWr[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2] -> j_aVY[sk:2] -> *)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2] -> j_aVY[sk:2] -> *)) (CFunEqCan)
doTopReact
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2] -> j_aVY[sk:2] -> *)) (CFunEqCan)
matchFamTcM
Matching: Op q_aW0[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aWs {0}:: (Op
q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
addInertCan }
Step 7[l:2,d:0] Kept as inert:
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2] -> j_aVY[sk:2] -> *))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2] -> j_aVY[sk:2] -> *)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CNonCanonical)
canonicalize (non-canonical)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CNonCanonical)
canEvNC:cls
Functor [i_aVX[sk:2], j_aVY[sk:2], p_aVZ[sk:2], q_aW0[sk:2],
g_aW2[sk:2]]
addTcEvBind
aWj
[G] $dCategory_aWt = sc(($dFunctor_aW4, 0))
addTcEvBind
aWj
[G] $dCategory_aWu = sc(($dFunctor_aW4, 1))
mk_superclasses_of
Category [i_aVX[sk:2], p_aVZ[sk:2]]
False
[rKn :-> Functor]
addTcEvBind
aWj
[G] $dFunctor_aWv = sc(($dCategory_aWt, 0))
mk_superclasses_of: loop
Functor [i_aVX[sk:2], i_aVX[sk:2] -> *, Op p_aVZ[sk:2],
Nat p_aVZ[sk:2] (->), p_aVZ[sk:2]]
mk_superclasses_of
Category [j_aVY[sk:2], q_aW0[sk:2]]
False
[rKn :-> Functor]
addTcEvBind
aWj
[G] $dFunctor_aWw = sc(($dCategory_aWu, 0))
mk_superclasses_of: loop
Functor [j_aVY[sk:2], j_aVY[sk:2] -> *, Op q_aW0[sk:2],
Nat q_aW0[sk:2] (->), q_aW0[sk:2]]
Emitting fresh work
[G] $dCategory_aWt {0}:: Category p_aVZ[sk:2] (CDictCan)
[G] $dFunctor_aWv {0}:: Functor
(Op p_aVZ[sk:2]) (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2] (CDictCan(psc))
[G] $dCategory_aWu {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWw {0}:: Functor
(Op q_aW0[sk:2]) (Nat q_aW0[sk:2] (->)) q_aW0[sk:2] (CDictCan(psc))
flatten_many {
i_aVX[sk:2]
j_aVY[sk:2]
p_aVZ[sk:2]
q_aW0[sk:2]
g_aW2[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar g_aW2[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar j_aVY[sk:2]
flatten }
i_aVX[sk:2]
j_aVY[sk:2]
p_aVZ[sk:2]
q_aW0[sk:2]
g_aW2[sk:2]
canClass
[G] $dFunctor_aW4 {0}:: Functor p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]
Functor p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]
ContinueWith [G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
doTopReact
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
try_fundeps
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2]
q_aW0[sk:2]
g_aW2[sk:2] (CDictCan)
addInertCan }
Step 8[l:2,d:0] Kept as inert:
[G] $dFunctor_aW4 {0}:: Functor p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aWt {0}:: Category
p_aVZ[sk:2] (CDictCan)
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dFunctor_aWv {0}:: Functor
(Op p_aVZ[sk:2])
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
[G] $dCategory_aWu {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWw {0}:: Functor
(Op q_aW0[sk:2])
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dCategory_aWt {0}:: Category
p_aVZ[sk:2] (CDictCan)
flatten_many {
i_aVX[sk:2]
p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
flatten }
i_aVX[sk:2]
p_aVZ[sk:2]
canClass
[G] $dCategory_aWt {0}:: Category p_aVZ[sk:2]
Category p_aVZ[sk:2]
ContinueWith [G] $dCategory_aWt {0}:: Category p_aVZ[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aWt {0}:: Category
p_aVZ[sk:2] (CDictCan)
end stage interact with inerts }
Step 9[l:2,d:0] Dict equal (keep):
[G] $dCategory_aWt {0}:: Category p_aVZ[sk:2]
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aWv {0}:: Functor
(Op p_aVZ[sk:2])
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aWu {0}:: Category
q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWw {0}:: Functor
(Op q_aW0[sk:2])
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dFunctor_aWv {0}:: Functor
(Op p_aVZ[sk:2])
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
flatten_many {
i_aVX[sk:2]
i_aVX[sk:2] -> *
Op p_aVZ[sk:2]
Nat p_aVZ[sk:2] (->)
p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
matchFamTcM
Matching: Op p_aVZ[sk:2]
Match failed
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
flatten/flat-cache hit
Op [i_aVX[sk:2], i_aVX[sk:2], p_aVZ[sk:2]]
fsk_aWp[fsk]
Unfilled tyvar fsk_aWp[fsk]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
flatten }
i_aVX[sk:2]
i_aVX[sk:2] -> *
fsk_aWp[fsk]
Nat p_aVZ[sk:2] (->)
p_aVZ[sk:2]
addTcEvBind
aWj
[G] $dFunctor_aWx
= $dFunctor_aWv `cast` (Sub
(Sym
(Functor
<i_aVX[sk:2]>_N
<i_aVX[sk:2] -> *>_N
(Sym cobox)
<Nat p_aVZ[sk:2] (->)>_N
<p_aVZ[sk:2]>_N)_N))
canClass
[G] $dFunctor_aWv {0}:: Functor
(Op p_aVZ[sk:2]) (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2]
Functor fsk_aWp[fsk] (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2]
ContinueWith [G] $dFunctor_aWx {0}:: Functor
fsk_aWp[fsk] (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aWx {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
end stage interact with inerts }
Step 10[l:2,d:0] Dict equal (keep):
[G] $dFunctor_aWx {0}:: Functor
fsk_aWp[fsk] (Nat p_aVZ[sk:2] (->)) p_aVZ[sk:2]
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aWu {0}:: Category
q_aW0[sk:2] (CDictCan)
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dFunctor_aWw {0}:: Functor
(Op q_aW0[sk:2])
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dCategory_aWu {0}:: Category
q_aW0[sk:2] (CDictCan)
flatten_many {
j_aVY[sk:2]
q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
flatten }
j_aVY[sk:2]
q_aW0[sk:2]
canClass
[G] $dCategory_aWu {0}:: Category q_aW0[sk:2]
Category q_aW0[sk:2]
ContinueWith [G] $dCategory_aWu {0}:: Category q_aW0[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aWu {0}:: Category
q_aW0[sk:2] (CDictCan)
end stage interact with inerts }
Step 11[l:2,d:0] Dict equal (keep):
[G] $dCategory_aWu {0}:: Category q_aW0[sk:2]
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aWw {0}:: Functor
(Op q_aW0[sk:2])
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dFunctor_aWw {0}:: Functor
(Op q_aW0[sk:2])
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
flatten_many {
j_aVY[sk:2]
j_aVY[sk:2] -> *
Op q_aW0[sk:2]
Nat q_aW0[sk:2] (->)
q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
matchFamTcM
Matching: Op q_aW0[sk:2]
Match failed
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
flatten/flat-cache hit
Op [j_aVY[sk:2], j_aVY[sk:2], q_aW0[sk:2]]
fsk_aWr[fsk]
Unfilled tyvar fsk_aWr[fsk]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
flatten }
j_aVY[sk:2]
j_aVY[sk:2] -> *
fsk_aWr[fsk]
Nat q_aW0[sk:2] (->)
q_aW0[sk:2]
addTcEvBind
aWj
[G] $dFunctor_aWy
= $dFunctor_aWw `cast` (Sub
(Sym
(Functor
<j_aVY[sk:2]>_N
<j_aVY[sk:2] -> *>_N
(Sym cobox)
<Nat q_aW0[sk:2] (->)>_N
<q_aW0[sk:2]>_N)_N))
canClass
[G] $dFunctor_aWw {0}:: Functor
(Op q_aW0[sk:2]) (Nat q_aW0[sk:2] (->)) q_aW0[sk:2]
Functor fsk_aWr[fsk] (Nat q_aW0[sk:2] (->)) q_aW0[sk:2]
ContinueWith [G] $dFunctor_aWy {0}:: Functor
fsk_aWr[fsk] (Nat q_aW0[sk:2] (->)) q_aW0[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aWy {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
end stage interact with inerts }
Step 12[l:2,d:0] Dict equal (keep):
[G] $dFunctor_aWy {0}:: Functor
fsk_aWr[fsk] (Nat q_aW0[sk:2] (->)) q_aW0[sk:2]
End solver pipeline (discharged) }
End solveSimpleGivens }
solveWanteds {
WC {wc_simple =
[WD] $dFunctor_aWb {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] (CNonCanonical)
[WD] $dFunctor_aWc {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] g_aWa[tau:2] (CNonCanonical)
wc_impl =
Implic {
TcLevel = 3
Skolems = (a_aWe[sk:3] :: i_aW5[tau:2])
No-eqs = False
Status = Unsolved
Given = irred_aWf :: Ob p_aW7[tau:2] a_aWe[sk:3]
Wanted =
WC {wc_simple =
[WD] irred_aWh {0}:: Ob p_aVZ[sk:2] a_aWg[tau:3] (CNonCanonical)}
Binds = EvBindsVar<aWi>
Needed = []
the type of the constructor ‘Nat’:
Ob p_aW7[tau:2] a_aWe[sk:3] =>
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3]) }}
solveSimpleWanteds {
{[WD] $dFunctor_aWb {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] (CNonCanonical),
[WD] $dFunctor_aWc {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] g_aWa[tau:2] (CNonCanonical)}
-----------------------------
Start solver pipeline {
work item = [WD] $dFunctor_aWb {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [WD] $dFunctor_aWc {0}:: Functor
p_aW7[tau:2]
q_aW8[tau:2]
g_aWa[tau:2] (CNonCanonical)}
runStage canonicalization {
workitem = [WD] $dFunctor_aWb {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] (CNonCanonical)
canonicalize (non-canonical)
[WD] $dFunctor_aWb {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2] (CNonCanonical)
canEvNC:cls
Functor [i_aW5[tau:2], j_aW6[tau:2], p_aW7[tau:2], q_aW8[tau:2],
f_aW9[tau:2]]
flatten_many {
i_aW5[tau:2]
j_aW6[tau:2]
p_aW7[tau:2]
q_aW8[tau:2]
f_aW9[tau:2]
Following filled tyvar i_aW5[tau:2] = i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Following filled tyvar j_aW6[tau:2] = j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Following filled tyvar p_aW7[tau:2] = p_aVZ[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Following filled tyvar q_aW8[tau:2] = q_aW0[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Following filled tyvar f_aW9[tau:2] = f_aW1[sk:2]
Unfilled tyvar f_aW1[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar j_aVY[sk:2]
flatten }
i_aVX[sk:2]
j_aVY[sk:2]
p_aVZ[sk:2]
q_aW0[sk:2]
f_aW1[sk:2]
canClass
[WD] $dFunctor_aWb {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] f_aW9[tau:2]
Functor p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2]
ContinueWith [WD] $dFunctor_aWb {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] $dFunctor_aWb {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan(psc))
addTcEvBind
aWj
[W] $dFunctor_aWb = $dFunctor_aW3
end stage interact with inerts }
Step 13[l:2,d:0] Dict equal (keep):
[WD] $dFunctor_aWb {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2]
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [WD] $dFunctor_aWc {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] g_aWa[tau:2] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [WD] $dFunctor_aWc {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] g_aWa[tau:2] (CNonCanonical)
canonicalize (non-canonical)
[WD] $dFunctor_aWc {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] g_aWa[tau:2] (CNonCanonical)
canEvNC:cls
Functor [i_aW5[tau:2], j_aW6[tau:2], p_aW7[tau:2], q_aW8[tau:2],
g_aWa[tau:2]]
flatten_many {
i_aW5[tau:2]
j_aW6[tau:2]
p_aW7[tau:2]
q_aW8[tau:2]
g_aWa[tau:2]
Following filled tyvar i_aW5[tau:2] = i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Following filled tyvar j_aW6[tau:2] = j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Following filled tyvar p_aW7[tau:2] = p_aVZ[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Following filled tyvar q_aW8[tau:2] = q_aW0[sk:2]
Unfilled tyvar q_aW0[sk:2]
Unfilled tyvar j_aVY[sk:2]
Unfilled tyvar j_aVY[sk:2]
Following filled tyvar g_aWa[tau:2] = g_aW2[sk:2]
Unfilled tyvar g_aW2[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar j_aVY[sk:2]
flatten }
i_aVX[sk:2]
j_aVY[sk:2]
p_aVZ[sk:2]
q_aW0[sk:2]
g_aW2[sk:2]
canClass
[WD] $dFunctor_aWc {0}:: Functor
p_aW7[tau:2] q_aW8[tau:2] g_aWa[tau:2]
Functor p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]
ContinueWith [WD] $dFunctor_aWc {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] $dFunctor_aWc {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan(psc))
addTcEvBind
aWj
[W] $dFunctor_aWc = $dFunctor_aW4
end stage interact with inerts }
Step 14[l:2,d:0] Dict equal (keep):
[WD] $dFunctor_aWc {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2]
End solver pipeline (discharged) }
getUnsolvedInerts
tv eqs = {}
fun eqs = {}
insols = {}
others = {}
implics = {}
Unflattening
{Funeqs =
Tv eqs =}
Unflattening 1 {}
Unflattening 2 {}
Unflattening 3 {}
Unflattening done {}
zonkSimples done: {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveNestedImplications starting {
solveImplication {
Implic {
TcLevel = 3
Skolems = (a_aWe[sk:3] :: i_aW5[tau:2])
No-eqs = False
Status = Unsolved
Given = irred_aWf :: Ob p_aW7[tau:2] a_aWe[sk:3]
Wanted =
WC {wc_simple =
[WD] irred_aWh {0}:: Ob p_aVZ[sk:2] a_aWg[tau:3] (CNonCanonical)}
Binds = EvBindsVar<aWi>
Needed = []
the type of the constructor ‘Nat’:
Ob p_aW7[tau:2] a_aWe[sk:3] =>
q_aW8[tau:2] (f_aW9[tau:2] a_aWe[sk:3]) (g_aWa[tau:2] a_aWe[sk:3]) }
Inerts {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Unsolved goals = 0}
solveSimpleGivens {
[[G] irred_aWf {0}:: Ob p_aW7[tau:2] a_aWe[sk:3] (CNonCanonical)]
-----------------------------
Start solver pipeline {
work item = [G] irred_aWf {0}:: Ob
p_aW7[tau:2] a_aWe[sk:3] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] irred_aWf {0}:: Ob
p_aW7[tau:2] a_aWe[sk:3] (CNonCanonical)
canonicalize (non-canonical)
[G] irred_aWf {0}:: Ob p_aW7[tau:2] a_aWe[sk:3] (CNonCanonical)
canEvNC:irred Ob p_aW7[tau:2] a_aWe[sk:3]
can_pred IrredPred = Ob p_aW7[tau:2] a_aWe[sk:3]
flatten { Ob p_aW7[tau:2] a_aWe[sk:3]
matchFamTcM
Matching: Ob p_aW7[tau:2]
Match failed
Following filled tyvar i_aW5[tau:2] = i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
Following filled tyvar p_aW7[tau:2] = p_aVZ[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
matchFamTcM
Matching: Ob p_aVZ[sk:2]
Match failed
addTcEvBind
aWi
[G] cobox_aWA = CO <Ob p_aVZ[sk:2]>_N
extendFlatCache
Ob [i_aVX[sk:2], p_aVZ[sk:2]]
[G]
fsk_aWz[fsk]
flatten/flat-cache miss
Ob [i_aVX[sk:2], p_aVZ[sk:2]]
fsk_aWz[fsk]
[G] cobox_aWA {0}:: (Ob p_aVZ[sk:2] :: (i_aVX[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aWz[fsk] :: (i_aVX[sk:2] -> Constraint))
Unfilled tyvar a_aWe[sk:3]
Following filled tyvar i_aW5[tau:2] = i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
flatten } fsk_aWz[fsk] a_aWe[sk:3]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] irred_aWf {0}:: fsk_aWz[fsk] a_aWe[sk:3] (CIrredEvCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] irred_aWf {0}:: fsk_aWz[fsk] a_aWe[sk:3] (CIrredEvCan)
doTopReact
[G] irred_aWf {0}:: fsk_aWz[fsk] a_aWe[sk:3] (CIrredEvCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] irred_aWf {0}:: fsk_aWz[fsk] a_aWe[sk:3] (CIrredEvCan)
addInertCan }
Step 15[l:3,d:0] Kept as inert:
[G] irred_aWf {0}:: fsk_aWz[fsk] a_aWe[sk:3]
End solver pipeline (kept as inert) }
final_item = [G] irred_aWf {0}:: fsk_aWz[fsk] a_aWe[sk:3] (CIrredEvCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aWA {0}:: (Ob p_aVZ[sk:2] :: (i_aVX[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aWz[fsk] :: (i_aVX[sk:2] -> Constraint)) (CFunEqCan)
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Irreds = [G] irred_aWf {0}:: fsk_aWz[fsk] a_aWe[sk:3] (CIrredEvCan)
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] cobox_aWA {0}:: (Ob p_aVZ[sk:2] :: (i_aVX[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aWz[fsk] :: (i_aVX[sk:2] -> Constraint)) (CFunEqCan)
flatten_many {
i_aVX[sk:2]
p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
flatten }
i_aVX[sk:2]
p_aVZ[sk:2]
extendFlatCache
Ob [i_aVX[sk:2], p_aVZ[sk:2]]
[G]
fsk_aWz[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aWA {0}:: (Ob p_aVZ[sk:2] :: (i_aVX[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aWz[fsk] :: (i_aVX[sk:2] -> Constraint)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aWA {0}:: (Ob p_aVZ[sk:2] :: (i_aVX[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aWz[fsk] :: (i_aVX[sk:2] -> Constraint)) (CFunEqCan)
doTopReact
[G] cobox_aWA {0}:: (Ob p_aVZ[sk:2] :: (i_aVX[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aWz[fsk] :: (i_aVX[sk:2] -> Constraint)) (CFunEqCan)
matchFamTcM
Matching: Ob p_aVZ[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aWA {0}:: (Ob
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aWz[fsk] :: (i_aVX[sk:2]
-> Constraint)) (CFunEqCan)
addInertCan }
Step 16[l:3,d:0] Kept as inert:
[G] cobox_aWA {0}:: (Ob p_aVZ[sk:2] :: (i_aVX[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aWz[fsk] :: (i_aVX[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aWA {0}:: (Ob p_aVZ[sk:2] :: (i_aVX[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aWz[fsk] :: (i_aVX[sk:2] -> Constraint)) (CFunEqCan)
End solveSimpleGivens }
solveWanteds {
WC {wc_simple =
[WD] irred_aWh {0}:: Ob p_aVZ[sk:2] a_aWg[tau:3] (CNonCanonical)}
solveSimpleWanteds {
{[WD] irred_aWh {0}:: Ob p_aVZ[sk:2] a_aWg[tau:3] (CNonCanonical)}
-----------------------------
Start solver pipeline {
work item = [WD] irred_aWh {0}:: Ob
p_aVZ[sk:2] a_aWg[tau:3] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWA {0}:: (Ob p_aVZ[sk:2] :: (i_aVX[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aWz[fsk] :: (i_aVX[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Irreds = [G] irred_aWf {0}:: fsk_aWz[fsk] a_aWe[sk:3] (CIrredEvCan)
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [WD] irred_aWh {0}:: Ob
p_aVZ[sk:2] a_aWg[tau:3] (CNonCanonical)
canonicalize (non-canonical)
[WD] irred_aWh {0}:: Ob p_aVZ[sk:2] a_aWg[tau:3] (CNonCanonical)
canEvNC:irred Ob p_aVZ[sk:2] a_aWg[tau:3]
can_pred IrredPred = Ob p_aVZ[sk:2] a_aWg[tau:3]
flatten { Ob p_aVZ[sk:2] a_aWg[tau:3]
matchFamTcM
Matching: Ob p_aVZ[sk:2]
Match failed
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar p_aVZ[sk:2]
Unfilled tyvar i_aVX[sk:2]
Unfilled tyvar i_aVX[sk:2]
flatten/flat-cache hit
Ob [i_aVX[sk:2], p_aVZ[sk:2]]
fsk_aWz[fsk]
Unfilled tyvar fsk_aWz[fsk]
Unfilled tyvar i_aVX[sk:2]
Following filled tyvar a_aWg[tau:3] = a_aWe[sk:3]
Unfilled tyvar a_aWe[sk:3]
Unfilled tyvar i_aVX[sk:2]
flatten } fsk_aWz[fsk] a_aWe[sk:3]
Emitting new wanted
irred_aWB :: fsk_aWz[fsk] a_aWe[sk:3]
arising from a type expected by the context:
forall (a :: i_aVX[sk:2]).
Ob p_aVZ[sk:2] a =>
q_aW0[sk:2] (f_aW1[sk:2] a) (g_aW2[sk:2] a)
at T11480b.hs:69:3
addTcEvBind
aWi
[W] irred_aWh
= irred_aWB `cast` (Sub (Sym cobox_aWA <a_aWe[sk:3]>_N))
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] irred_aWB {0}:: fsk_aWz[fsk] a_aWe[sk:3] (CIrredEvCan)
addTcEvBind
aWi
[W] irred_aWB = irred_aWf
end stage interact with inerts }
Step 17[l:3,d:0] Irred equal (keep):
[WD] irred_aWB {0}:: fsk_aWz[fsk] a_aWe[sk:3]
End solver pipeline (discharged) }
getUnsolvedInerts
tv eqs = {}
fun eqs = {}
insols = {}
others = {}
implics = {}
Unflattening
{Funeqs =
Tv eqs =}
Unflattening 1 {}
Unflattening 2 {}
Unflattening 3 {}
Unflattening done {}
zonkSimples done: {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {[G] cobox_aWA = CO <Ob p_aVZ[sk:2]>_N,
[W] irred_aWh
= irred_aWB `cast` (Sub (Sym cobox_aWA <a_aWe[sk:3]>_N)),
[W] irred_aWB = irred_aWf}
getNoGivenEqs
True
{Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWA {0}:: (Ob p_aVZ[sk:2] :: (i_aVX[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aWz[fsk] :: (i_aVX[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Irreds = [G] irred_aWf {0}:: fsk_aWz[fsk] a_aWe[sk:3] (CIrredEvCan)
Unsolved goals = 0}
{}
solveImplication 2
{}
WC {}
setImplicationStatus 2
[irred_aWf]
([aWA :-> [G] cobox_aWA = CO <Ob p_aVZ[sk:2]>_N,
aWh :-> [W] irred_aWh
= irred_aWB `cast` (Sub (Sym cobox_aWA <a_aWe[sk:3]>_N)),
aWB :-> [W] irred_aWB = irred_aWf],
[])
[aWf :-> irred_aWf]
solveImplication end }
no_given_eqs = False
floated_eqs = {}
res_implic = Nothing
implication evbinds = {[G] cobox_aWA = CO <Ob p_aVZ[sk:2]>_N,
[W] irred_aWh
= irred_aWB `cast` (Sub (Sym cobox_aWA <a_aWe[sk:3]>_N)),
[W] irred_aWB = irred_aWf}
implication tvcs = []
solveNestedImplications end }
all floated_eqs = {}
unsolved_implics = {Nothing}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {[G] $dCategory_aWl = sc(($dFunctor_aW3, 0)),
[G] $dCategory_aWm = sc(($dFunctor_aW3, 1)),
[G] $dFunctor_aWn = sc(($dCategory_aWl, 0)),
[G] $dFunctor_aWo = sc(($dCategory_aWm, 0)),
[G] cobox_aWq = CO <Op p_aVZ[sk:2]>_N,
[G] cobox_aWs = CO <Op q_aW0[sk:2]>_N,
[G] $dCategory_aWt = sc(($dFunctor_aW4, 0)),
[G] $dCategory_aWu = sc(($dFunctor_aW4, 1)),
[G] $dFunctor_aWv = sc(($dCategory_aWt, 0)),
[G] $dFunctor_aWw = sc(($dCategory_aWu, 0)),
[G] $dFunctor_aWx
= $dFunctor_aWv `cast` (Sub
(Sym
(Functor
<i_aVX[sk:2]>_N
<i_aVX[sk:2] -> *>_N
(Sym cobox)
<Nat p_aVZ[sk:2] (->)>_N
<p_aVZ[sk:2]>_N)_N)),
[G] $dFunctor_aWy
= $dFunctor_aWw `cast` (Sub
(Sym
(Functor
<j_aVY[sk:2]>_N
<j_aVY[sk:2] -> *>_N
(Sym cobox)
<Nat q_aW0[sk:2] (->)>_N
<q_aW0[sk:2]>_N)_N)),
[W] $dFunctor_aWb = $dFunctor_aW3,
[W] $dFunctor_aWc = $dFunctor_aW4}
getNoGivenEqs
False
{Type-function equalities = [G] cobox_aWq {0}:: (Op
p_aVZ[sk:2] :: (i_aVX[sk:2]
-> i_aVX[sk:2] -> *))
GHC.Prim.~#
(fsk_aWp[fsk] :: (i_aVX[sk:2]
-> i_aVX[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aWs {0}:: (Op q_aW0[sk:2] :: (j_aVY[sk:2]
-> j_aVY[sk:2] -> *))
GHC.Prim.~#
(fsk_aWr[fsk] :: (j_aVY[sk:2]
-> j_aVY[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWl {0}:: Category
p_aVZ[sk:2] (CDictCan)
[G] $dCategory_aWm {0}:: Category q_aW0[sk:2] (CDictCan)
[G] $dFunctor_aWo {0}:: Functor
fsk_aWr[fsk]
(Nat q_aW0[sk:2] (->))
q_aW0[sk:2] (CDictCan(psc))
[G] $dFunctor_aW3 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] f_aW1[sk:2] (CDictCan)
[G] $dFunctor_aW4 {0}:: Functor
p_aVZ[sk:2] q_aW0[sk:2] g_aW2[sk:2] (CDictCan)
[G] $dFunctor_aWn {0}:: Functor
fsk_aWp[fsk]
(Nat p_aVZ[sk:2] (->))
p_aVZ[sk:2] (CDictCan(psc))
Unsolved goals = 0}
{}
floatEqualities
Skols = [i_aVX[sk:2], j_aVY[sk:2], p_aVZ[sk:2], q_aW0[sk:2],
f_aW1[sk:2], g_aW2[sk:2]]
Simples = {}
Floated eqs = {}
solveImplication 2
{}
WC {}
setImplicationStatus 2
[$dFunctor_aW3, $dFunctor_aW4]
([aWl :-> [G] $dCategory_aWl = sc(($dFunctor_aW3, 0)),
aWm :-> [G] $dCategory_aWm = sc(($dFunctor_aW3, 1)),
aWn :-> [G] $dFunctor_aWn = sc(($dCategory_aWl, 0)),
aWo :-> [G] $dFunctor_aWo = sc(($dCategory_aWm, 0)),
aWq :-> [G] cobox_aWq = CO <Op p_aVZ[sk:2]>_N,
aWs :-> [G] cobox_aWs = CO <Op q_aW0[sk:2]>_N,
aWt :-> [G] $dCategory_aWt = sc(($dFunctor_aW4, 0)),
aWu :-> [G] $dCategory_aWu = sc(($dFunctor_aW4, 1)),
aWv :-> [G] $dFunctor_aWv = sc(($dCategory_aWt, 0)),
aWw :-> [G] $dFunctor_aWw = sc(($dCategory_aWu, 0)),
aWx :-> [G] $dFunctor_aWx
= $dFunctor_aWv `cast` (Sub
(Sym
(Functor
<i_aVX[sk:2]>_N
<i_aVX[sk:2] -> *>_N
(Sym cobox)
<Nat p_aVZ[sk:2] (->)>_N
<p_aVZ[sk:2]>_N)_N)),
aWy :-> [G] $dFunctor_aWy
= $dFunctor_aWw `cast` (Sub
(Sym
(Functor
<j_aVY[sk:2]>_N
<j_aVY[sk:2] -> *>_N
(Sym cobox)
<Nat q_aW0[sk:2] (->)>_N
<q_aW0[sk:2]>_N)_N)),
aWb :-> [W] $dFunctor_aWb = $dFunctor_aW3,
aWc :-> [W] $dFunctor_aWc = $dFunctor_aW4],
[])
[aW3 :-> $dFunctor_aW3, aW4 :-> $dFunctor_aW4]
solveImplication end }
no_given_eqs = True
floated_eqs = {}
res_implic = Nothing
implication evbinds = {[G] $dCategory_aWl = sc(($dFunctor_aW3, 0)),
[G] $dCategory_aWm = sc(($dFunctor_aW3, 1)),
[G] $dFunctor_aWn = sc(($dCategory_aWl, 0)),
[G] $dFunctor_aWo = sc(($dCategory_aWm, 0)),
[G] cobox_aWq = CO <Op p_aVZ[sk:2]>_N,
[G] cobox_aWs = CO <Op q_aW0[sk:2]>_N,
[G] $dCategory_aWt = sc(($dFunctor_aW4, 0)),
[G] $dCategory_aWu = sc(($dFunctor_aW4, 1)),
[G] $dFunctor_aWv = sc(($dCategory_aWt, 0)),
[G] $dFunctor_aWw = sc(($dCategory_aWu, 0)),
[G] $dFunctor_aWx
= $dFunctor_aWv `cast` (Sub
(Sym
(Functor
<i_aVX[sk:2]>_N
<i_aVX[sk:2] -> *>_N
(Sym cobox)
<Nat p_aVZ[sk:2] (->)>_N
<p_aVZ[sk:2]>_N)_N)),
[G] $dFunctor_aWy
= $dFunctor_aWw `cast` (Sub
(Sym
(Functor
<j_aVY[sk:2]>_N
<j_aVY[sk:2] -> *>_N
(Sym cobox)
<Nat q_aW0[sk:2] (->)>_N
<q_aW0[sk:2]>_N)_N)),
[W] $dFunctor_aWb = $dFunctor_aW3,
[W] $dFunctor_aWc = $dFunctor_aW4}
implication tvcs = []
solveNestedImplications end }
all floated_eqs = {}
unsolved_implics = {Nothing}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
Constraint solver steps = 17
End simplifyAmbiguityCheck }
reportUnsolved(ambig) {
newTcEvBinds unique = aWC
reportUnsolved(ambig) }
Done ambiguity check for
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
checkValidType done
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g :: *
Done validity of data con
Nat forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j) (g :: i -> j).
(Functor p q f, Functor p q g) =>
(forall (a :: i). Ob p a => q (f a) (g a)) -> Nat p q f g
Done validity for tycon Nat
Starting validity for tycon Functor
checkValidTyCon
Functor
Just Functor
check_valid_theta [Category p_aKW[sk:1], Category q_aKY[sk:1]]
class op type
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
checkValidType
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b) :: *
check_type
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
True
check_valid_theta [Functor p q f]
check_type
forall (a :: i_aKV[sk:1]) (b :: i_aKV[sk:1]).
p_aKW[sk:1] a b -> q_aKY[sk:1] (f_aKZ[sk:1] a) (f_aKZ[sk:1] b)
True
Ambiguity check for
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
tcSubType_NC
the type signature for ‘fmap’
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
tc_sub_tc_type (general case)
ty_actual = forall i j (p :: i -> i -> *) (q :: j
-> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
ty_expected = forall i j (p :: i -> i -> *) (q :: j
-> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
tcSkolemise
tcSkolemise
1
expected_ty forall i j (p :: i -> i -> *) (q :: j
-> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
inst tyvars [i_aWE[sk:2], j_aWF[sk:2], p_aWG[sk:2], q_aWH[sk:2],
f_aWI[sk:2], a_aWL[sk:2], b_aWM[sk:2]]
given [$dFunctor_aWJ]
inst type p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
tc_sub_type_ds
ty_actual = forall i j (p :: i -> i -> *) (q :: j
-> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
ty_expected = p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
instCallConstraints [$dFunctor_aWS]
Instantiating
all tyvars? True
origin arising from a type equality forall i j (p :: i
-> i -> *) (q :: j -> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
~
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
type forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
theta [Functor p q f]
leave_bndrs []
with [i_aWN[tau:2], j_aWO[tau:2], p_aWP[tau:2], q_aWQ[tau:2],
f_aWR[tau:2]]
theta: [Functor p_aWP[tau:2] q_aWQ[tau:2] f_aWR[tau:2]]
Instantiating
all tyvars? True
origin arising from a type equality forall i j (p :: i
-> i -> *) (q :: j -> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
~
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
type forall (a :: i_aWN[tau:2]) (b :: i_aWN[tau:2]).
p_aWP[tau:2] a b -> q_aWQ[tau:2] (f_aWR[tau:2] a) (f_aWR[tau:2] b)
theta []
leave_bndrs []
with [a_aWT[tau:2], b_aWU[tau:2]]
theta: []
tc_sub_type_ds
ty_actual = p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
ty_expected = p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
tc_sub_type_ds
ty_actual = q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
ty_expected = q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
deeply_instantiate final subst
origin: arising from a type equality forall i j (p :: i
-> i -> *) (q :: j -> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
~
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
type: q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
new type: q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
subst: [TCvSubst
In scope: InScope {i_aWN j_aWO q_aWQ f_aWR a_aWT b_aWU}
Type env: []
Co env: []]
u_tys
tclvl 2
q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys
tclvl 2
q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2])
~
q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2])
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys
tclvl 2
q_aWQ[tau:2] ~ q_aWH[sk:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys
tclvl 2
j_aWF[sk:2] -> j_aWF[sk:2] -> * ~ j_aWO[tau:2] -> j_aWO[tau:2] -> *
arising from a kind equality arising from
q_aWQ[tau:2] ~ q_aWH[sk:2]
u_tys
tclvl 2
j_aWF[sk:2] ~ j_aWO[tau:2]
arising from a kind equality arising from
q_aWQ[tau:2] ~ q_aWH[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
j_aWO[tau:2] ~ j_aWF[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
j_aWO[tau:2] ~ j_aWF[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar j_aWO[tau:2] := j_aWF[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
j_aWF[sk:2] -> * ~ j_aWO[tau:2] -> *
arising from a kind equality arising from
q_aWQ[tau:2] ~ q_aWH[sk:2]
u_tys
tclvl 2
j_aWF[sk:2] ~ j_aWO[tau:2]
arising from a kind equality arising from
q_aWQ[tau:2] ~ q_aWH[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
q_aWQ[tau:2] ~ q_aWH[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar q_aWQ[tau:2] := q_aWH[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
f_aWR[tau:2] a_aWT[tau:2] ~ f_aWI[sk:2] a_aWL[sk:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys
tclvl 2
f_aWR[tau:2] ~ f_aWI[sk:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys
tclvl 2
i_aWE[sk:2] -> j_aWF[sk:2] ~ i_aWN[tau:2] -> j_aWO[tau:2]
arising from a kind equality arising from
f_aWR[tau:2] ~ f_aWI[sk:2]
u_tys
tclvl 2
i_aWE[sk:2] ~ i_aWN[tau:2]
arising from a kind equality arising from
f_aWR[tau:2] ~ f_aWI[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
i_aWN[tau:2] ~ i_aWE[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aWN[tau:2] ~ i_aWE[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aWN[tau:2] := i_aWE[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
j_aWF[sk:2] ~ j_aWO[tau:2]
arising from a kind equality arising from
f_aWR[tau:2] ~ f_aWI[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar f_aWR[tau:2] := f_aWI[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
a_aWT[tau:2] ~ a_aWL[sk:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys
tclvl 2
i_aWE[sk:2] ~ i_aWN[tau:2]
arising from a kind equality arising from
a_aWT[tau:2] ~ a_aWL[sk:2]
u_tys yields no coercion
writeMetaTyVar a_aWT[tau:2] := a_aWL[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
f_aWR[tau:2] b_aWU[tau:2] ~ f_aWI[sk:2] b_aWM[sk:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys
tclvl 2
f_aWR[tau:2] ~ f_aWI[sk:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
found filled tyvar f_aWR[tau:2] :-> f_aWI[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
b_aWU[tau:2] ~ b_aWM[sk:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys
tclvl 2
i_aWE[sk:2] ~ i_aWN[tau:2]
arising from a kind equality arising from
b_aWU[tau:2] ~ b_aWM[sk:2]
u_tys yields no coercion
writeMetaTyVar b_aWU[tau:2] := b_aWM[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
tc_sub_tc_type (general case)
ty_actual = p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
ty_expected = p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
tcSkolemise
tcSkolemise
2
expected_ty p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
inst tyvars []
given []
inst type p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
tc_sub_type_ds
ty_actual = p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
ty_expected = p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
deeply_instantiate final subst
origin: arising from a type expected by the context:
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
type: p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
new type: p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
subst: [TCvSubst
In scope: InScope {i_aWE p_aWG a_aWL b_aWM}
Type env: []
Co env: []]
u_tys
tclvl 2
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
~
p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys
tclvl 2
p_aWG[sk:2] a_aWL[sk:2] ~ p_aWP[tau:2] a_aWT[tau:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys
tclvl 2
p_aWG[sk:2] ~ p_aWP[tau:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys
tclvl 2
i_aWE[sk:2] -> i_aWE[sk:2] -> * ~ i_aWE[sk:2] -> i_aWE[sk:2] -> *
arising from a kind equality arising from
p_aWP[tau:2] ~ p_aWG[sk:2]
u_tys
tclvl 2
i_aWE[sk:2] ~ i_aWE[sk:2]
arising from a kind equality arising from
p_aWP[tau:2] ~ p_aWG[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
i_aWE[sk:2] -> * ~ i_aWE[sk:2] -> *
arising from a kind equality arising from
p_aWP[tau:2] ~ p_aWG[sk:2]
u_tys
tclvl 2
i_aWE[sk:2] ~ i_aWE[sk:2]
arising from a kind equality arising from
p_aWP[tau:2] ~ p_aWG[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
p_aWP[tau:2] ~ p_aWG[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar p_aWP[tau:2] := p_aWG[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
a_aWL[sk:2] ~ a_aWT[tau:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
b_aWM[sk:2] ~ b_aWU[tau:2]
arising from a type equality p_aWP[tau:2] a_aWT[tau:2] b_aWU[tau:2]
-> q_aWQ[tau:2] (f_aWR[tau:2] a_aWT[tau:2]) (f_aWR[tau:2] b_aWU[tau:2])
~
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2])
u_tys yields no coercion
u_tys yields no coercion
newTcEvBinds unique = aWV
simplifyAmbiguityCheck {
type = forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i
-> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
wanted = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aWE[sk:2]
j_aWF[sk:2]
(p_aWG[sk:2] :: i_aWE[sk:2] -> i_aWE[sk:2] -> *)
(q_aWH[sk:2] :: j_aWF[sk:2] -> j_aWF[sk:2] -> *)
(f_aWI[sk:2] :: i_aWE[sk:2] -> j_aWF[sk:2])
(a_aWL[sk:2] :: i_aWE[sk:2])
(b_aWM[sk:2] :: i_aWE[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dFunctor_aWJ :: Functor p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2]
Wanted =
WC {wc_simple =
[WD] $dFunctor_aWS {0}:: Functor
p_aWP[tau:2]
q_aWQ[tau:2]
f_aWR[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aWV>
Needed = []
the type signature for:
fmap :: Functor p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] =>
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2]) }}
newTcEvBinds unique = aWW
solveWanteds {
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aWE[sk:2]
j_aWF[sk:2]
(p_aWG[sk:2] :: i_aWE[sk:2] -> i_aWE[sk:2] -> *)
(q_aWH[sk:2] :: j_aWF[sk:2] -> j_aWF[sk:2] -> *)
(f_aWI[sk:2] :: i_aWE[sk:2] -> j_aWF[sk:2])
(a_aWL[sk:2] :: i_aWE[sk:2])
(b_aWM[sk:2] :: i_aWE[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dFunctor_aWJ :: Functor p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2]
Wanted =
WC {wc_simple =
[WD] $dFunctor_aWS {0}:: Functor
p_aWP[tau:2] q_aWQ[tau:2] f_aWR[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aWV>
Needed = []
the type signature for:
fmap :: Functor p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] =>
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2]) }}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveNestedImplications starting {
solveImplication {
Implic {
TcLevel = 2
Skolems = i_aWE[sk:2]
j_aWF[sk:2]
(p_aWG[sk:2] :: i_aWE[sk:2] -> i_aWE[sk:2] -> *)
(q_aWH[sk:2] :: j_aWF[sk:2] -> j_aWF[sk:2] -> *)
(f_aWI[sk:2] :: i_aWE[sk:2] -> j_aWF[sk:2])
(a_aWL[sk:2] :: i_aWE[sk:2])
(b_aWM[sk:2] :: i_aWE[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dFunctor_aWJ :: Functor p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2]
Wanted =
WC {wc_simple =
[WD] $dFunctor_aWS {0}:: Functor
p_aWP[tau:2] q_aWQ[tau:2] f_aWR[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aWV>
Needed = []
the type signature for:
fmap :: Functor p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] =>
p_aWG[sk:2] a_aWL[sk:2] b_aWM[sk:2]
-> q_aWH[sk:2] (f_aWI[sk:2] a_aWL[sk:2]) (f_aWI[sk:2] b_aWM[sk:2]) }
Inerts {Unsolved goals = 0}
solveSimpleGivens {
[[G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CNonCanonical)]
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CNonCanonical)
inerts = {Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CNonCanonical)
canonicalize (non-canonical)
[G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CNonCanonical)
canEvNC:cls
Functor [i_aWE[sk:2], j_aWF[sk:2], p_aWG[sk:2], q_aWH[sk:2],
f_aWI[sk:2]]
addTcEvBind
aWV
[G] $dCategory_aWX = sc(($dFunctor_aWJ, 0))
addTcEvBind
aWV
[G] $dCategory_aWY = sc(($dFunctor_aWJ, 1))
mk_superclasses_of
Category [i_aWE[sk:2], p_aWG[sk:2]]
False
[rKn :-> Functor]
addTcEvBind
aWV
[G] $dFunctor_aWZ = sc(($dCategory_aWX, 0))
mk_superclasses_of: loop
Functor [i_aWE[sk:2], i_aWE[sk:2] -> *, Op p_aWG[sk:2],
Nat p_aWG[sk:2] (->), p_aWG[sk:2]]
mk_superclasses_of
Category [j_aWF[sk:2], q_aWH[sk:2]]
False
[rKn :-> Functor]
addTcEvBind
aWV
[G] $dFunctor_aX0 = sc(($dCategory_aWY, 0))
mk_superclasses_of: loop
Functor [j_aWF[sk:2], j_aWF[sk:2] -> *, Op q_aWH[sk:2],
Nat q_aWH[sk:2] (->), q_aWH[sk:2]]
Emitting fresh work
[G] $dCategory_aWX {0}:: Category p_aWG[sk:2] (CDictCan)
[G] $dFunctor_aWZ {0}:: Functor
(Op p_aWG[sk:2]) (Nat p_aWG[sk:2] (->)) p_aWG[sk:2] (CDictCan(psc))
[G] $dCategory_aWY {0}:: Category q_aWH[sk:2] (CDictCan)
[G] $dFunctor_aX0 {0}:: Functor
(Op q_aWH[sk:2]) (Nat q_aWH[sk:2] (->)) q_aWH[sk:2] (CDictCan(psc))
flatten_many {
i_aWE[sk:2]
j_aWF[sk:2]
p_aWG[sk:2]
q_aWH[sk:2]
f_aWI[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar p_aWG[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar q_aWH[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar f_aWI[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar j_aWF[sk:2]
flatten }
i_aWE[sk:2]
j_aWF[sk:2]
p_aWG[sk:2]
q_aWH[sk:2]
f_aWI[sk:2]
canClass
[G] $dFunctor_aWJ {0}:: Functor p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2]
Functor p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2]
ContinueWith [G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
doTopReact
[G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
try_fundeps
[G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2]
q_aWH[sk:2]
f_aWI[sk:2] (CDictCan)
addInertCan }
Step 1[l:2,d:0] Kept as inert:
[G] $dFunctor_aWJ {0}:: Functor p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aWX {0}:: Category
p_aWG[sk:2] (CDictCan)
inerts = {Dictionaries = [G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dFunctor_aWZ {0}:: Functor
(Op p_aWG[sk:2])
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
[G] $dCategory_aWY {0}:: Category q_aWH[sk:2] (CDictCan)
[G] $dFunctor_aX0 {0}:: Functor
(Op q_aWH[sk:2])
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dCategory_aWX {0}:: Category
p_aWG[sk:2] (CDictCan)
flatten_many {
i_aWE[sk:2]
p_aWG[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar p_aWG[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar i_aWE[sk:2]
flatten }
i_aWE[sk:2]
p_aWG[sk:2]
canClass
[G] $dCategory_aWX {0}:: Category p_aWG[sk:2]
Category p_aWG[sk:2]
ContinueWith [G] $dCategory_aWX {0}:: Category p_aWG[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aWX {0}:: Category
p_aWG[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aWX {0}:: Category
p_aWG[sk:2] (CDictCan)
doTopReact [G] $dCategory_aWX {0}:: Category p_aWG[sk:2] (CDictCan)
try_fundeps
[G] $dCategory_aWX {0}:: Category p_aWG[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aWX {0}:: Category
p_aWG[sk:2] (CDictCan)
addInertCan }
Step 2[l:2,d:0] Kept as inert:
[G] $dCategory_aWX {0}:: Category p_aWG[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aWX {0}:: Category
p_aWG[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aWZ {0}:: Functor
(Op p_aWG[sk:2])
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
inerts = {Dictionaries = [G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
[G] $dCategory_aWX {0}:: Category p_aWG[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aWY {0}:: Category
q_aWH[sk:2] (CDictCan)
[G] $dFunctor_aX0 {0}:: Functor
(Op q_aWH[sk:2])
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dFunctor_aWZ {0}:: Functor
(Op p_aWG[sk:2])
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
flatten_many {
i_aWE[sk:2]
i_aWE[sk:2] -> *
Op p_aWG[sk:2]
Nat p_aWG[sk:2] (->)
p_aWG[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar i_aWE[sk:2]
matchFamTcM
Matching: Op p_aWG[sk:2]
Match failed
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar p_aWG[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar i_aWE[sk:2]
matchFamTcM
Matching: Op p_aWG[sk:2]
Match failed
addTcEvBind
aWV
[G] cobox_aX2 = CO <Op p_aWG[sk:2]>_N
extendFlatCache
Op [i_aWE[sk:2], i_aWE[sk:2], p_aWG[sk:2]]
[G]
fsk_aX1[fsk]
flatten/flat-cache miss
Op [i_aWE[sk:2], i_aWE[sk:2], p_aWG[sk:2]]
fsk_aX1[fsk]
[G] cobox_aX2 {0}:: (Op p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2] -> i_aWE[sk:2] -> *))
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar p_aWG[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar p_aWG[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar i_aWE[sk:2]
flatten }
i_aWE[sk:2]
i_aWE[sk:2] -> *
fsk_aX1[fsk]
Nat p_aWG[sk:2] (->)
p_aWG[sk:2]
canClass
[G] $dFunctor_aWZ {0}:: Functor
(Op p_aWG[sk:2]) (Nat p_aWG[sk:2] (->)) p_aWG[sk:2]
Functor fsk_aX1[fsk] (Nat p_aWG[sk:2] (->)) p_aWG[sk:2]
ContinueWith [G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk] (Nat p_aWG[sk:2] (->)) p_aWG[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk]
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk]
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
doTopReact
[G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk] (Nat p_aWG[sk:2] (->)) p_aWG[sk:2] (CDictCan(psc))
try_fundeps
[G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk] (Nat p_aWG[sk:2] (->)) p_aWG[sk:2] (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk]
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
addInertCan }
Step 3[l:2,d:0] Kept as inert:
[G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk] (Nat p_aWG[sk:2] (->)) p_aWG[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk]
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
-----------------------------
Start solver pipeline {
work item = [G] cobox_aX2 {0}:: (Op p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2] -> i_aWE[sk:2] -> *)) (CFunEqCan)
inerts = {Dictionaries = [G] $dCategory_aWX {0}:: Category
p_aWG[sk:2] (CDictCan)
[G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
[G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk]
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aWY {0}:: Category
q_aWH[sk:2] (CDictCan)
[G] $dFunctor_aX0 {0}:: Functor
(Op q_aWH[sk:2])
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))}
runStage canonicalization {
workitem = [G] cobox_aX2 {0}:: (Op p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2] -> i_aWE[sk:2] -> *)) (CFunEqCan)
flatten_many {
i_aWE[sk:2]
i_aWE[sk:2]
p_aWG[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar p_aWG[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar i_aWE[sk:2]
flatten }
i_aWE[sk:2]
i_aWE[sk:2]
p_aWG[sk:2]
extendFlatCache
Op [i_aWE[sk:2], i_aWE[sk:2], p_aWG[sk:2]]
[G]
fsk_aX1[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aX2 {0}:: (Op p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2] -> i_aWE[sk:2] -> *)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aX2 {0}:: (Op p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2] -> i_aWE[sk:2] -> *)) (CFunEqCan)
doTopReact
[G] cobox_aX2 {0}:: (Op p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2] -> i_aWE[sk:2] -> *)) (CFunEqCan)
matchFamTcM
Matching: Op p_aWG[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aX2 {0}:: (Op
p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2]
-> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2]
-> i_aWE[sk:2]
-> *)) (CFunEqCan)
addInertCan }
Step 4[l:2,d:0] Kept as inert:
[G] cobox_aX2 {0}:: (Op p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2] -> i_aWE[sk:2] -> *))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aX2 {0}:: (Op p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2] -> i_aWE[sk:2] -> *)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aWY {0}:: Category
q_aWH[sk:2] (CDictCan)
inerts = {Type-function equalities = [G] cobox_aX2 {0}:: (Op
p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2]
-> i_aWE[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWX {0}:: Category
p_aWG[sk:2] (CDictCan)
[G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
[G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk]
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dFunctor_aX0 {0}:: Functor
(Op q_aWH[sk:2])
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dCategory_aWY {0}:: Category
q_aWH[sk:2] (CDictCan)
flatten_many {
j_aWF[sk:2]
q_aWH[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar q_aWH[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar j_aWF[sk:2]
flatten }
j_aWF[sk:2]
q_aWH[sk:2]
canClass
[G] $dCategory_aWY {0}:: Category q_aWH[sk:2]
Category q_aWH[sk:2]
ContinueWith [G] $dCategory_aWY {0}:: Category q_aWH[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aWY {0}:: Category
q_aWH[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aWY {0}:: Category
q_aWH[sk:2] (CDictCan)
doTopReact [G] $dCategory_aWY {0}:: Category q_aWH[sk:2] (CDictCan)
try_fundeps
[G] $dCategory_aWY {0}:: Category q_aWH[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aWY {0}:: Category
q_aWH[sk:2] (CDictCan)
addInertCan }
Step 5[l:2,d:0] Kept as inert:
[G] $dCategory_aWY {0}:: Category q_aWH[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aWY {0}:: Category
q_aWH[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aX0 {0}:: Functor
(Op q_aWH[sk:2])
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aX2 {0}:: (Op
p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2]
-> i_aWE[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
[G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk]
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
[G] $dCategory_aWX {0}:: Category p_aWG[sk:2] (CDictCan)
[G] $dCategory_aWY {0}:: Category q_aWH[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dFunctor_aX0 {0}:: Functor
(Op q_aWH[sk:2])
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))
flatten_many {
j_aWF[sk:2]
j_aWF[sk:2] -> *
Op q_aWH[sk:2]
Nat q_aWH[sk:2] (->)
q_aWH[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar j_aWF[sk:2]
matchFamTcM
Matching: Op q_aWH[sk:2]
Match failed
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar q_aWH[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar j_aWF[sk:2]
matchFamTcM
Matching: Op q_aWH[sk:2]
Match failed
addTcEvBind
aWV
[G] cobox_aX4 = CO <Op q_aWH[sk:2]>_N
extendFlatCache
Op [j_aWF[sk:2], j_aWF[sk:2], q_aWH[sk:2]]
[G]
fsk_aX3[fsk]
flatten/flat-cache miss
Op [j_aWF[sk:2], j_aWF[sk:2], q_aWH[sk:2]]
fsk_aX3[fsk]
[G] cobox_aX4 {0}:: (Op q_aWH[sk:2] :: (j_aWF[sk:2]
-> j_aWF[sk:2] -> *))
GHC.Prim.~#
(fsk_aX3[fsk] :: (j_aWF[sk:2] -> j_aWF[sk:2] -> *))
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar q_aWH[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar q_aWH[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar j_aWF[sk:2]
flatten }
j_aWF[sk:2]
j_aWF[sk:2] -> *
fsk_aX3[fsk]
Nat q_aWH[sk:2] (->)
q_aWH[sk:2]
canClass
[G] $dFunctor_aX0 {0}:: Functor
(Op q_aWH[sk:2]) (Nat q_aWH[sk:2] (->)) q_aWH[sk:2]
Functor fsk_aX3[fsk] (Nat q_aWH[sk:2] (->)) q_aWH[sk:2]
ContinueWith [G] $dFunctor_aX0 {0}:: Functor
fsk_aX3[fsk] (Nat q_aWH[sk:2] (->)) q_aWH[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aX0 {0}:: Functor
fsk_aX3[fsk]
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aX0 {0}:: Functor
fsk_aX3[fsk]
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))
doTopReact
[G] $dFunctor_aX0 {0}:: Functor
fsk_aX3[fsk] (Nat q_aWH[sk:2] (->)) q_aWH[sk:2] (CDictCan(psc))
try_fundeps
[G] $dFunctor_aX0 {0}:: Functor
fsk_aX3[fsk] (Nat q_aWH[sk:2] (->)) q_aWH[sk:2] (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aX0 {0}:: Functor
fsk_aX3[fsk]
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))
addInertCan }
Step 6[l:2,d:0] Kept as inert:
[G] $dFunctor_aX0 {0}:: Functor
fsk_aX3[fsk] (Nat q_aWH[sk:2] (->)) q_aWH[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aX0 {0}:: Functor
fsk_aX3[fsk]
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))
-----------------------------
Start solver pipeline {
work item = [G] cobox_aX4 {0}:: (Op q_aWH[sk:2] :: (j_aWF[sk:2]
-> j_aWF[sk:2] -> *))
GHC.Prim.~#
(fsk_aX3[fsk] :: (j_aWF[sk:2] -> j_aWF[sk:2] -> *)) (CFunEqCan)
inerts = {Type-function equalities = [G] cobox_aX2 {0}:: (Op
p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2]
-> i_aWE[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWX {0}:: Category
p_aWG[sk:2] (CDictCan)
[G] $dCategory_aWY {0}:: Category q_aWH[sk:2] (CDictCan)
[G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
[G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk]
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
[G] $dFunctor_aX0 {0}:: Functor
fsk_aX3[fsk]
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] cobox_aX4 {0}:: (Op q_aWH[sk:2] :: (j_aWF[sk:2]
-> j_aWF[sk:2] -> *))
GHC.Prim.~#
(fsk_aX3[fsk] :: (j_aWF[sk:2] -> j_aWF[sk:2] -> *)) (CFunEqCan)
flatten_many {
j_aWF[sk:2]
j_aWF[sk:2]
q_aWH[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar q_aWH[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar j_aWF[sk:2]
flatten }
j_aWF[sk:2]
j_aWF[sk:2]
q_aWH[sk:2]
extendFlatCache
Op [j_aWF[sk:2], j_aWF[sk:2], q_aWH[sk:2]]
[G]
fsk_aX3[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aX4 {0}:: (Op q_aWH[sk:2] :: (j_aWF[sk:2]
-> j_aWF[sk:2] -> *))
GHC.Prim.~#
(fsk_aX3[fsk] :: (j_aWF[sk:2] -> j_aWF[sk:2] -> *)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aX4 {0}:: (Op q_aWH[sk:2] :: (j_aWF[sk:2]
-> j_aWF[sk:2] -> *))
GHC.Prim.~#
(fsk_aX3[fsk] :: (j_aWF[sk:2] -> j_aWF[sk:2] -> *)) (CFunEqCan)
doTopReact
[G] cobox_aX4 {0}:: (Op q_aWH[sk:2] :: (j_aWF[sk:2]
-> j_aWF[sk:2] -> *))
GHC.Prim.~#
(fsk_aX3[fsk] :: (j_aWF[sk:2] -> j_aWF[sk:2] -> *)) (CFunEqCan)
matchFamTcM
Matching: Op q_aWH[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aX4 {0}:: (Op
q_aWH[sk:2] :: (j_aWF[sk:2]
-> j_aWF[sk:2]
-> *))
GHC.Prim.~#
(fsk_aX3[fsk] :: (j_aWF[sk:2]
-> j_aWF[sk:2]
-> *)) (CFunEqCan)
addInertCan }
Step 7[l:2,d:0] Kept as inert:
[G] cobox_aX4 {0}:: (Op q_aWH[sk:2] :: (j_aWF[sk:2]
-> j_aWF[sk:2] -> *))
GHC.Prim.~#
(fsk_aX3[fsk] :: (j_aWF[sk:2] -> j_aWF[sk:2] -> *))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aX4 {0}:: (Op q_aWH[sk:2] :: (j_aWF[sk:2]
-> j_aWF[sk:2] -> *))
GHC.Prim.~#
(fsk_aX3[fsk] :: (j_aWF[sk:2] -> j_aWF[sk:2] -> *)) (CFunEqCan)
End solveSimpleGivens }
solveWanteds {
WC {wc_simple =
[WD] $dFunctor_aWS {0}:: Functor
p_aWP[tau:2] q_aWQ[tau:2] f_aWR[tau:2] (CNonCanonical)}
solveSimpleWanteds {
{[WD] $dFunctor_aWS {0}:: Functor
p_aWP[tau:2] q_aWQ[tau:2] f_aWR[tau:2] (CNonCanonical)}
-----------------------------
Start solver pipeline {
work item = [WD] $dFunctor_aWS {0}:: Functor
p_aWP[tau:2] q_aWQ[tau:2] f_aWR[tau:2] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aX2 {0}:: (Op
p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2]
-> i_aWE[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aX4 {0}:: (Op q_aWH[sk:2] :: (j_aWF[sk:2]
-> j_aWF[sk:2] -> *))
GHC.Prim.~#
(fsk_aX3[fsk] :: (j_aWF[sk:2]
-> j_aWF[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWX {0}:: Category
p_aWG[sk:2] (CDictCan)
[G] $dCategory_aWY {0}:: Category q_aWH[sk:2] (CDictCan)
[G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
[G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk]
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
[G] $dFunctor_aX0 {0}:: Functor
fsk_aX3[fsk]
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [WD] $dFunctor_aWS {0}:: Functor
p_aWP[tau:2] q_aWQ[tau:2] f_aWR[tau:2] (CNonCanonical)
canonicalize (non-canonical)
[WD] $dFunctor_aWS {0}:: Functor
p_aWP[tau:2] q_aWQ[tau:2] f_aWR[tau:2] (CNonCanonical)
canEvNC:cls
Functor [i_aWN[tau:2], j_aWO[tau:2], p_aWP[tau:2], q_aWQ[tau:2],
f_aWR[tau:2]]
flatten_many {
i_aWN[tau:2]
j_aWO[tau:2]
p_aWP[tau:2]
q_aWQ[tau:2]
f_aWR[tau:2]
Following filled tyvar i_aWN[tau:2] = i_aWE[sk:2]
Unfilled tyvar i_aWE[sk:2]
Following filled tyvar j_aWO[tau:2] = j_aWF[sk:2]
Unfilled tyvar j_aWF[sk:2]
Following filled tyvar p_aWP[tau:2] = p_aWG[sk:2]
Unfilled tyvar p_aWG[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar i_aWE[sk:2]
Following filled tyvar q_aWQ[tau:2] = q_aWH[sk:2]
Unfilled tyvar q_aWH[sk:2]
Unfilled tyvar j_aWF[sk:2]
Unfilled tyvar j_aWF[sk:2]
Following filled tyvar f_aWR[tau:2] = f_aWI[sk:2]
Unfilled tyvar f_aWI[sk:2]
Unfilled tyvar i_aWE[sk:2]
Unfilled tyvar j_aWF[sk:2]
flatten }
i_aWE[sk:2]
j_aWF[sk:2]
p_aWG[sk:2]
q_aWH[sk:2]
f_aWI[sk:2]
canClass
[WD] $dFunctor_aWS {0}:: Functor
p_aWP[tau:2] q_aWQ[tau:2] f_aWR[tau:2]
Functor p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2]
ContinueWith [WD] $dFunctor_aWS {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] $dFunctor_aWS {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan(psc))
addTcEvBind
aWV
[W] $dFunctor_aWS = $dFunctor_aWJ
end stage interact with inerts }
Step 8[l:2,d:0] Dict equal (keep):
[WD] $dFunctor_aWS {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2]
End solver pipeline (discharged) }
getUnsolvedInerts
tv eqs = {}
fun eqs = {}
insols = {}
others = {}
implics = {}
Unflattening
{Funeqs =
Tv eqs =}
Unflattening 1 {}
Unflattening 2 {}
Unflattening 3 {}
Unflattening done {}
zonkSimples done: {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {[G] $dCategory_aWX = sc(($dFunctor_aWJ, 0)),
[G] $dCategory_aWY = sc(($dFunctor_aWJ, 1)),
[G] $dFunctor_aWZ = sc(($dCategory_aWX, 0)),
[G] $dFunctor_aX0 = sc(($dCategory_aWY, 0)),
[G] cobox_aX2 = CO <Op p_aWG[sk:2]>_N,
[G] cobox_aX4 = CO <Op q_aWH[sk:2]>_N,
[W] $dFunctor_aWS = $dFunctor_aWJ}
getNoGivenEqs
False
{Type-function equalities = [G] cobox_aX2 {0}:: (Op
p_aWG[sk:2] :: (i_aWE[sk:2]
-> i_aWE[sk:2] -> *))
GHC.Prim.~#
(fsk_aX1[fsk] :: (i_aWE[sk:2]
-> i_aWE[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aX4 {0}:: (Op q_aWH[sk:2] :: (j_aWF[sk:2]
-> j_aWF[sk:2] -> *))
GHC.Prim.~#
(fsk_aX3[fsk] :: (j_aWF[sk:2]
-> j_aWF[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aWX {0}:: Category
p_aWG[sk:2] (CDictCan)
[G] $dCategory_aWY {0}:: Category q_aWH[sk:2] (CDictCan)
[G] $dFunctor_aWJ {0}:: Functor
p_aWG[sk:2] q_aWH[sk:2] f_aWI[sk:2] (CDictCan)
[G] $dFunctor_aWZ {0}:: Functor
fsk_aX1[fsk]
(Nat p_aWG[sk:2] (->))
p_aWG[sk:2] (CDictCan(psc))
[G] $dFunctor_aX0 {0}:: Functor
fsk_aX3[fsk]
(Nat q_aWH[sk:2] (->))
q_aWH[sk:2] (CDictCan(psc))
Unsolved goals = 0}
{}
floatEqualities
Skols = [i_aWE[sk:2], j_aWF[sk:2], p_aWG[sk:2], q_aWH[sk:2],
f_aWI[sk:2], a_aWL[sk:2], b_aWM[sk:2]]
Simples = {}
Floated eqs = {}
solveImplication 2
{}
WC {}
setImplicationStatus 2
[$dFunctor_aWJ]
([aWX :-> [G] $dCategory_aWX = sc(($dFunctor_aWJ, 0)),
aWY :-> [G] $dCategory_aWY = sc(($dFunctor_aWJ, 1)),
aWZ :-> [G] $dFunctor_aWZ = sc(($dCategory_aWX, 0)),
aX0 :-> [G] $dFunctor_aX0 = sc(($dCategory_aWY, 0)),
aX2 :-> [G] cobox_aX2 = CO <Op p_aWG[sk:2]>_N,
aX4 :-> [G] cobox_aX4 = CO <Op q_aWH[sk:2]>_N,
aWS :-> [W] $dFunctor_aWS = $dFunctor_aWJ],
[])
[aWJ :-> $dFunctor_aWJ]
solveImplication end }
no_given_eqs = True
floated_eqs = {}
res_implic = Nothing
implication evbinds = {[G] $dCategory_aWX = sc(($dFunctor_aWJ, 0)),
[G] $dCategory_aWY = sc(($dFunctor_aWJ, 1)),
[G] $dFunctor_aWZ = sc(($dCategory_aWX, 0)),
[G] $dFunctor_aX0 = sc(($dCategory_aWY, 0)),
[G] cobox_aX2 = CO <Op p_aWG[sk:2]>_N,
[G] cobox_aX4 = CO <Op q_aWH[sk:2]>_N,
[W] $dFunctor_aWS = $dFunctor_aWJ}
implication tvcs = []
solveNestedImplications end }
all floated_eqs = {}
unsolved_implics = {Nothing}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
Constraint solver steps = 8
End simplifyAmbiguityCheck }
reportUnsolved(ambig) {
newTcEvBinds unique = aX5
reportUnsolved(ambig) }
Done ambiguity check for
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b)
checkValidType done
forall i j (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j).
Functor p q f =>
forall (a :: i) (b :: i). p a b -> q (f a) (f b) :: *
Done validity for tycon Functor
Starting validity for tycon Category
checkValidTyCon
Category
Just Category
check_valid_theta
[Functor (Op p_aL3[sk:1]) (Nat p_aL3[sk:1] (->)) p_aL3[sk:1]]
class op type
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
checkValidType
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a :: *
check_type
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
True
check_valid_theta [Category p]
check_type
forall (a :: i_aL2[sk:1]). Ob p_aL3[sk:1] a => p_aL3[sk:1] a a
True
check_valid_theta [Ob p_aL3[sk:1] a]
Ambiguity check for
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
tcSubType_NC
the type signature for ‘id’
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
tc_sub_tc_type (general case)
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
ty_expected = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
tcSkolemise
tcSkolemise
1
expected_ty forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
inst tyvars [i_aX7[sk:2], p_aX8[sk:2], a_aXb[sk:2]]
given [$dCategory_aX9, irred_aXc]
inst type p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2]
tc_sub_type_ds
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
ty_expected = p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2]
instCallConstraints [$dCategory_aXf]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
type forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
theta [Category p]
leave_bndrs []
with [i_aXd[tau:2], p_aXe[tau:2]]
theta: [Category p_aXe[tau:2]]
instCallConstraints [irred_aXh]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
type forall (a :: i_aXd[tau:2]).
Ob p_aXe[tau:2] a =>
p_aXe[tau:2] a a
theta [Ob p_aXe[tau:2] a]
leave_bndrs []
with [a_aXg[tau:2]]
theta: [Ob p_aXe[tau:2] a_aXg[tau:2]]
tc_sub_type_ds
ty_actual = p_aXe[tau:2] a_aXg[tau:2] a_aXg[tau:2]
ty_expected = p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2]
deeply_instantiate final subst
origin: arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
type: p_aXe[tau:2] a_aXg[tau:2] a_aXg[tau:2]
new type: p_aXe[tau:2] a_aXg[tau:2] a_aXg[tau:2]
subst: [TCvSubst
In scope: InScope {i_aXd p_aXe a_aXg}
Type env: []
Co env: []]
u_tys
tclvl 2
p_aXe[tau:2] a_aXg[tau:2] a_aXg[tau:2]
~
p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2]
arising from a type equality p_aXe[tau:2] a_aXg[tau:2] a_aXg[tau:2]
~
p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2]
u_tys
tclvl 2
p_aXe[tau:2] a_aXg[tau:2] ~ p_aX8[sk:2] a_aXb[sk:2]
arising from a type equality p_aXe[tau:2] a_aXg[tau:2] a_aXg[tau:2]
~
p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2]
u_tys
tclvl 2
p_aXe[tau:2] ~ p_aX8[sk:2]
arising from a type equality p_aXe[tau:2] a_aXg[tau:2] a_aXg[tau:2]
~
p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2]
u_tys
tclvl 2
i_aX7[sk:2] -> i_aX7[sk:2] -> * ~ i_aXd[tau:2] -> i_aXd[tau:2] -> *
arising from a kind equality arising from
p_aXe[tau:2] ~ p_aX8[sk:2]
u_tys
tclvl 2
i_aX7[sk:2] ~ i_aXd[tau:2]
arising from a kind equality arising from
p_aXe[tau:2] ~ p_aX8[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
i_aXd[tau:2] ~ i_aX7[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aXd[tau:2] ~ i_aX7[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aXd[tau:2] := i_aX7[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
i_aX7[sk:2] -> * ~ i_aXd[tau:2] -> *
arising from a kind equality arising from
p_aXe[tau:2] ~ p_aX8[sk:2]
u_tys
tclvl 2
i_aX7[sk:2] ~ i_aXd[tau:2]
arising from a kind equality arising from
p_aXe[tau:2] ~ p_aX8[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
p_aXe[tau:2] ~ p_aX8[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar p_aXe[tau:2] := p_aX8[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
a_aXg[tau:2] ~ a_aXb[sk:2]
arising from a type equality p_aXe[tau:2] a_aXg[tau:2] a_aXg[tau:2]
~
p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2]
u_tys
tclvl 2
i_aX7[sk:2] ~ i_aXd[tau:2]
arising from a kind equality arising from
a_aXg[tau:2] ~ a_aXb[sk:2]
u_tys yields no coercion
writeMetaTyVar a_aXg[tau:2] := a_aXb[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
a_aXg[tau:2] ~ a_aXb[sk:2]
arising from a type equality p_aXe[tau:2] a_aXg[tau:2] a_aXg[tau:2]
~
p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2]
found filled tyvar a_aXg[tau:2] :-> a_aXb[sk:2]
u_tys yields no coercion
u_tys yields no coercion
newTcEvBinds unique = aXi
simplifyAmbiguityCheck {
type = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
wanted = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aX7[sk:2]
(p_aX8[sk:2] :: i_aX7[sk:2] -> i_aX7[sk:2] -> *)
(a_aXb[sk:2] :: i_aX7[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dCategory_aX9 :: Category p_aX8[sk:2]
irred_aXc :: Ob p_aX8[sk:2] a_aXb[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aXf {0}:: Category p_aXe[tau:2] (CNonCanonical)
[WD] irred_aXh {0}:: Ob p_aXe[tau:2] a_aXg[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aXi>
Needed = []
the type signature for:
id :: (Category p_aX8[sk:2], Ob p_aX8[sk:2] a_aXb[sk:2]) =>
p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2] }}
newTcEvBinds unique = aXj
solveWanteds {
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aX7[sk:2]
(p_aX8[sk:2] :: i_aX7[sk:2] -> i_aX7[sk:2] -> *)
(a_aXb[sk:2] :: i_aX7[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dCategory_aX9 :: Category p_aX8[sk:2]
irred_aXc :: Ob p_aX8[sk:2] a_aXb[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aXf {0}:: Category p_aXe[tau:2] (CNonCanonical)
[WD] irred_aXh {0}:: Ob p_aXe[tau:2] a_aXg[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aXi>
Needed = []
the type signature for:
id :: (Category p_aX8[sk:2], Ob p_aX8[sk:2] a_aXb[sk:2]) =>
p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2] }}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveNestedImplications starting {
solveImplication {
Implic {
TcLevel = 2
Skolems = i_aX7[sk:2]
(p_aX8[sk:2] :: i_aX7[sk:2] -> i_aX7[sk:2] -> *)
(a_aXb[sk:2] :: i_aX7[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dCategory_aX9 :: Category p_aX8[sk:2]
irred_aXc :: Ob p_aX8[sk:2] a_aXb[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aXf {0}:: Category p_aXe[tau:2] (CNonCanonical)
[WD] irred_aXh {0}:: Ob p_aXe[tau:2] a_aXg[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aXi>
Needed = []
the type signature for:
id :: (Category p_aX8[sk:2], Ob p_aX8[sk:2] a_aXb[sk:2]) =>
p_aX8[sk:2] a_aXb[sk:2] a_aXb[sk:2] }
Inerts {Unsolved goals = 0}
solveSimpleGivens {
[[G] $dCategory_aX9 {0}:: Category p_aX8[sk:2] (CNonCanonical),
[G] irred_aXc {0}:: Ob p_aX8[sk:2] a_aXb[sk:2] (CNonCanonical)]
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aX9 {0}:: Category
p_aX8[sk:2] (CNonCanonical)
inerts = {Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] irred_aXc {0}:: Ob
p_aX8[sk:2] a_aXb[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $dCategory_aX9 {0}:: Category
p_aX8[sk:2] (CNonCanonical)
canonicalize (non-canonical)
[G] $dCategory_aX9 {0}:: Category p_aX8[sk:2] (CNonCanonical)
canEvNC:cls Category [i_aX7[sk:2], p_aX8[sk:2]]
addTcEvBind
aXi
[G] $dFunctor_aXk = sc(($dCategory_aX9, 0))
mk_superclasses_of
Functor [i_aX7[sk:2], i_aX7[sk:2] -> *, Op p_aX8[sk:2],
Nat p_aX8[sk:2] (->), p_aX8[sk:2]]
False
[rKp :-> Category]
addTcEvBind
aXi
[G] $dCategory_aXl = sc(($dFunctor_aXk, 0))
addTcEvBind
aXi
[G] $dCategory_aXm = sc(($dFunctor_aXk, 1))
mk_superclasses_of: loop Category [i_aX7[sk:2], Op p_aX8[sk:2]]
mk_superclasses_of: loop
Category [i_aX7[sk:2] -> *, Nat p_aX8[sk:2] (->)]
Emitting fresh work
[G] $dFunctor_aXk {0}:: Functor
(Op p_aX8[sk:2]) (Nat p_aX8[sk:2] (->)) p_aX8[sk:2] (CDictCan)
[G] $dCategory_aXl {0}:: Category (Op p_aX8[sk:2]) (CDictCan(psc))
[G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aX7[sk:2]
p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
flatten }
i_aX7[sk:2]
p_aX8[sk:2]
canClass
[G] $dCategory_aX9 {0}:: Category p_aX8[sk:2]
Category p_aX8[sk:2]
ContinueWith [G] $dCategory_aX9 {0}:: Category p_aX8[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aX9 {0}:: Category
p_aX8[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aX9 {0}:: Category
p_aX8[sk:2] (CDictCan)
doTopReact [G] $dCategory_aX9 {0}:: Category p_aX8[sk:2] (CDictCan)
try_fundeps
[G] $dCategory_aX9 {0}:: Category p_aX8[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aX9 {0}:: Category
p_aX8[sk:2] (CDictCan)
addInertCan }
Step 1[l:2,d:0] Kept as inert:
[G] $dCategory_aX9 {0}:: Category p_aX8[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aX9 {0}:: Category
p_aX8[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aXk {0}:: Functor
(Op p_aX8[sk:2])
(Nat p_aX8[sk:2] (->))
p_aX8[sk:2] (CDictCan)
inerts = {Dictionaries = [G] $dCategory_aX9 {0}:: Category
p_aX8[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aXl {0}:: Category
(Op p_aX8[sk:2]) (CDictCan(psc))
[G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
[G] irred_aXc {0}:: Ob p_aX8[sk:2] a_aXb[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $dFunctor_aXk {0}:: Functor
(Op p_aX8[sk:2])
(Nat p_aX8[sk:2] (->))
p_aX8[sk:2] (CDictCan)
flatten_many {
i_aX7[sk:2]
i_aX7[sk:2] -> *
Op p_aX8[sk:2]
Nat p_aX8[sk:2] (->)
p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
matchFamTcM
Matching: Op p_aX8[sk:2]
Match failed
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
matchFamTcM
Matching: Op p_aX8[sk:2]
Match failed
addTcEvBind
aXi
[G] cobox_aXo = CO <Op p_aX8[sk:2]>_N
extendFlatCache
Op [i_aX7[sk:2], i_aX7[sk:2], p_aX8[sk:2]]
[G]
fsk_aXn[fsk]
flatten/flat-cache miss
Op [i_aX7[sk:2], i_aX7[sk:2], p_aX8[sk:2]]
fsk_aXn[fsk]
[G] cobox_aXo {0}:: (Op p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2] -> i_aX7[sk:2] -> *))
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
flatten }
i_aX7[sk:2]
i_aX7[sk:2] -> *
fsk_aXn[fsk]
Nat p_aX8[sk:2] (->)
p_aX8[sk:2]
canClass
[G] $dFunctor_aXk {0}:: Functor
(Op p_aX8[sk:2]) (Nat p_aX8[sk:2] (->)) p_aX8[sk:2]
Functor fsk_aXn[fsk] (Nat p_aX8[sk:2] (->)) p_aX8[sk:2]
ContinueWith [G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk] (Nat p_aX8[sk:2] (->)) p_aX8[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk] (Nat p_aX8[sk:2] (->)) p_aX8[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk] (Nat p_aX8[sk:2] (->)) p_aX8[sk:2] (CDictCan)
doTopReact
[G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk] (Nat p_aX8[sk:2] (->)) p_aX8[sk:2] (CDictCan)
try_fundeps
[G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk] (Nat p_aX8[sk:2] (->)) p_aX8[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk]
(Nat p_aX8[sk:2] (->))
p_aX8[sk:2] (CDictCan)
addInertCan }
Step 2[l:2,d:0] Kept as inert:
[G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk] (Nat p_aX8[sk:2] (->)) p_aX8[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk] (Nat p_aX8[sk:2] (->)) p_aX8[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aXo {0}:: (Op p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2] -> i_aX7[sk:2] -> *)) (CFunEqCan)
inerts = {Dictionaries = [G] $dCategory_aX9 {0}:: Category
p_aX8[sk:2] (CDictCan)
[G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk]
(Nat p_aX8[sk:2] (->))
p_aX8[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aXl {0}:: Category
(Op p_aX8[sk:2]) (CDictCan(psc))
[G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
[G] irred_aXc {0}:: Ob p_aX8[sk:2] a_aXb[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] cobox_aXo {0}:: (Op p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2] -> i_aX7[sk:2] -> *)) (CFunEqCan)
flatten_many {
i_aX7[sk:2]
i_aX7[sk:2]
p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
flatten }
i_aX7[sk:2]
i_aX7[sk:2]
p_aX8[sk:2]
extendFlatCache
Op [i_aX7[sk:2], i_aX7[sk:2], p_aX8[sk:2]]
[G]
fsk_aXn[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aXo {0}:: (Op p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2] -> i_aX7[sk:2] -> *)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aXo {0}:: (Op p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2] -> i_aX7[sk:2] -> *)) (CFunEqCan)
doTopReact
[G] cobox_aXo {0}:: (Op p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2] -> i_aX7[sk:2] -> *)) (CFunEqCan)
matchFamTcM
Matching: Op p_aX8[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aXo {0}:: (Op
p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2]
-> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2]
-> i_aX7[sk:2]
-> *)) (CFunEqCan)
addInertCan }
Step 3[l:2,d:0] Kept as inert:
[G] cobox_aXo {0}:: (Op p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2] -> i_aX7[sk:2] -> *))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aXo {0}:: (Op p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2] -> i_aX7[sk:2] -> *)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aXl {0}:: Category
(Op p_aX8[sk:2]) (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aXo {0}:: (Op
p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2]
-> i_aX7[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aX9 {0}:: Category
p_aX8[sk:2] (CDictCan)
[G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk]
(Nat p_aX8[sk:2] (->))
p_aX8[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
[G] irred_aXc {0}:: Ob p_aX8[sk:2] a_aXb[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $dCategory_aXl {0}:: Category
(Op p_aX8[sk:2]) (CDictCan(psc))
flatten_many {
i_aX7[sk:2]
Op p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
matchFamTcM
Matching: Op p_aX8[sk:2]
Match failed
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
flatten/flat-cache hit
Op [i_aX7[sk:2], i_aX7[sk:2], p_aX8[sk:2]]
fsk_aXn[fsk]
Unfilled tyvar fsk_aXn[fsk]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
flatten }
i_aX7[sk:2]
fsk_aXn[fsk]
addTcEvBind
aXi
[G] $dCategory_aXp
= $dCategory_aXl `cast` (Sub
(Sym (Category <i_aX7[sk:2]>_N (Sym cobox))_N))
canClass
[G] $dCategory_aXl {0}:: Category (Op p_aX8[sk:2])
Category fsk_aXn[fsk]
ContinueWith [G] $dCategory_aXp {0}:: Category fsk_aXn[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aXp {0}:: Category
fsk_aXn[fsk] (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aXp {0}:: Category
fsk_aXn[fsk] (CDictCan(psc))
doTopReact
[G] $dCategory_aXp {0}:: Category fsk_aXn[fsk] (CDictCan(psc))
try_fundeps
[G] $dCategory_aXp {0}:: Category fsk_aXn[fsk] (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aXp {0}:: Category
fsk_aXn[fsk] (CDictCan(psc))
addInertCan }
Step 4[l:2,d:0] Kept as inert:
[G] $dCategory_aXp {0}:: Category fsk_aXn[fsk]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aXp {0}:: Category
fsk_aXn[fsk] (CDictCan(psc))
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aXo {0}:: (Op
p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2]
-> i_aX7[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk]
(Nat p_aX8[sk:2] (->))
p_aX8[sk:2] (CDictCan)
[G] $dCategory_aX9 {0}:: Category p_aX8[sk:2] (CDictCan)
[G] $dCategory_aXp {0}:: Category fsk_aXn[fsk] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] irred_aXc {0}:: Ob
p_aX8[sk:2] a_aXb[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aX7[sk:2] -> *
Nat p_aX8[sk:2] (->)
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
flatten }
i_aX7[sk:2] -> *
Nat p_aX8[sk:2] (->)
canClass
[G] $dCategory_aXm {0}:: Category (Nat p_aX8[sk:2] (->))
Category (Nat p_aX8[sk:2] (->))
ContinueWith [G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
doTopReact
[G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
try_fundeps
[G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aXm {0}:: Category
(Nat
p_aX8[sk:2]
(->)) (CDictCan(psc))
addInertCan }
Step 5[l:2,d:0] Kept as inert:
[G] $dCategory_aXm {0}:: Category (Nat p_aX8[sk:2] (->))
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
-----------------------------
Start solver pipeline {
work item = [G] irred_aXc {0}:: Ob
p_aX8[sk:2] a_aXb[sk:2] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aXo {0}:: (Op
p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2]
-> i_aX7[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk]
(Nat p_aX8[sk:2] (->))
p_aX8[sk:2] (CDictCan)
[G] $dCategory_aX9 {0}:: Category p_aX8[sk:2] (CDictCan)
[G] $dCategory_aXp {0}:: Category fsk_aXn[fsk] (CDictCan(psc))
[G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] irred_aXc {0}:: Ob
p_aX8[sk:2] a_aXb[sk:2] (CNonCanonical)
canonicalize (non-canonical)
[G] irred_aXc {0}:: Ob p_aX8[sk:2] a_aXb[sk:2] (CNonCanonical)
canEvNC:irred Ob p_aX8[sk:2] a_aXb[sk:2]
can_pred IrredPred = Ob p_aX8[sk:2] a_aXb[sk:2]
flatten { Ob p_aX8[sk:2] a_aXb[sk:2]
matchFamTcM
Matching: Ob p_aX8[sk:2]
Match failed
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
matchFamTcM
Matching: Ob p_aX8[sk:2]
Match failed
addTcEvBind
aXi
[G] cobox_aXr = CO <Ob p_aX8[sk:2]>_N
extendFlatCache
Ob [i_aX7[sk:2], p_aX8[sk:2]]
[G]
fsk_aXq[fsk]
flatten/flat-cache miss
Ob [i_aX7[sk:2], p_aX8[sk:2]]
fsk_aXq[fsk]
[G] cobox_aXr {0}:: (Ob p_aX8[sk:2] :: (i_aX7[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2] -> Constraint))
Unfilled tyvar a_aXb[sk:2]
Unfilled tyvar i_aX7[sk:2]
flatten } fsk_aXq[fsk] a_aXb[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] irred_aXc {0}:: fsk_aXq[fsk] a_aXb[sk:2] (CIrredEvCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] irred_aXc {0}:: fsk_aXq[fsk] a_aXb[sk:2] (CIrredEvCan)
doTopReact
[G] irred_aXc {0}:: fsk_aXq[fsk] a_aXb[sk:2] (CIrredEvCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] irred_aXc {0}:: fsk_aXq[fsk] a_aXb[sk:2] (CIrredEvCan)
addInertCan }
Step 6[l:2,d:0] Kept as inert:
[G] irred_aXc {0}:: fsk_aXq[fsk] a_aXb[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] irred_aXc {0}:: fsk_aXq[fsk] a_aXb[sk:2] (CIrredEvCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aXr {0}:: (Ob p_aX8[sk:2] :: (i_aX7[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2] -> Constraint)) (CFunEqCan)
inerts = {Type-function equalities = [G] cobox_aXo {0}:: (Op
p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2]
-> i_aX7[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk]
(Nat p_aX8[sk:2] (->))
p_aX8[sk:2] (CDictCan)
[G] $dCategory_aX9 {0}:: Category p_aX8[sk:2] (CDictCan)
[G] $dCategory_aXp {0}:: Category fsk_aXn[fsk] (CDictCan(psc))
[G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
Irreds = [G] irred_aXc {0}:: fsk_aXq[fsk] a_aXb[sk:2] (CIrredEvCan)
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] cobox_aXr {0}:: (Ob p_aX8[sk:2] :: (i_aX7[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2] -> Constraint)) (CFunEqCan)
flatten_many {
i_aX7[sk:2]
p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
flatten }
i_aX7[sk:2]
p_aX8[sk:2]
extendFlatCache
Ob [i_aX7[sk:2], p_aX8[sk:2]]
[G]
fsk_aXq[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aXr {0}:: (Ob p_aX8[sk:2] :: (i_aX7[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2] -> Constraint)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aXr {0}:: (Ob p_aX8[sk:2] :: (i_aX7[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2] -> Constraint)) (CFunEqCan)
doTopReact
[G] cobox_aXr {0}:: (Ob p_aX8[sk:2] :: (i_aX7[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2] -> Constraint)) (CFunEqCan)
matchFamTcM
Matching: Ob p_aX8[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aXr {0}:: (Ob
p_aX8[sk:2] :: (i_aX7[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2]
-> Constraint)) (CFunEqCan)
addInertCan }
Step 7[l:2,d:0] Kept as inert:
[G] cobox_aXr {0}:: (Ob p_aX8[sk:2] :: (i_aX7[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aXr {0}:: (Ob p_aX8[sk:2] :: (i_aX7[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2] -> Constraint)) (CFunEqCan)
End solveSimpleGivens }
solveWanteds {
WC {wc_simple =
[WD] $dCategory_aXf {0}:: Category p_aXe[tau:2] (CNonCanonical)
[WD] irred_aXh {0}:: Ob p_aXe[tau:2] a_aXg[tau:2] (CNonCanonical)}
solveSimpleWanteds {
{[WD] $dCategory_aXf {0}:: Category p_aXe[tau:2] (CNonCanonical),
[WD] irred_aXh {0}:: Ob p_aXe[tau:2] a_aXg[tau:2] (CNonCanonical)}
-----------------------------
Start solver pipeline {
work item = [WD] $dCategory_aXf {0}:: Category
p_aXe[tau:2] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aXo {0}:: (Op
p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2]
-> i_aX7[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aXr {0}:: (Ob p_aX8[sk:2] :: (i_aX7[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk]
(Nat p_aX8[sk:2] (->))
p_aX8[sk:2] (CDictCan)
[G] $dCategory_aX9 {0}:: Category p_aX8[sk:2] (CDictCan)
[G] $dCategory_aXp {0}:: Category fsk_aXn[fsk] (CDictCan(psc))
[G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
Irreds = [G] irred_aXc {0}:: fsk_aXq[fsk] a_aXb[sk:2] (CIrredEvCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [WD] irred_aXh {0}:: Ob
p_aXe[tau:2] a_aXg[tau:2] (CNonCanonical)}
runStage canonicalization {
workitem = [WD] $dCategory_aXf {0}:: Category
p_aXe[tau:2] (CNonCanonical)
canonicalize (non-canonical)
[WD] $dCategory_aXf {0}:: Category p_aXe[tau:2] (CNonCanonical)
canEvNC:cls Category [i_aXd[tau:2], p_aXe[tau:2]]
flatten_many {
i_aXd[tau:2]
p_aXe[tau:2]
Following filled tyvar i_aXd[tau:2] = i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
Following filled tyvar p_aXe[tau:2] = p_aX8[sk:2]
Unfilled tyvar p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
flatten }
i_aX7[sk:2]
p_aX8[sk:2]
canClass
[WD] $dCategory_aXf {0}:: Category p_aXe[tau:2]
Category p_aX8[sk:2]
ContinueWith [WD] $dCategory_aXf {0}:: Category p_aX8[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] $dCategory_aXf {0}:: Category
p_aX8[sk:2] (CDictCan(psc))
addTcEvBind
aXi
[W] $dCategory_aXf = $dCategory_aX9
end stage interact with inerts }
Step 8[l:2,d:0] Dict equal (keep):
[WD] $dCategory_aXf {0}:: Category p_aX8[sk:2]
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [WD] irred_aXh {0}:: Ob
p_aXe[tau:2] a_aXg[tau:2] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aXo {0}:: (Op
p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2]
-> i_aX7[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aXr {0}:: (Ob p_aX8[sk:2] :: (i_aX7[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk]
(Nat p_aX8[sk:2] (->))
p_aX8[sk:2] (CDictCan)
[G] $dCategory_aX9 {0}:: Category p_aX8[sk:2] (CDictCan)
[G] $dCategory_aXp {0}:: Category fsk_aXn[fsk] (CDictCan(psc))
[G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
Irreds = [G] irred_aXc {0}:: fsk_aXq[fsk] a_aXb[sk:2] (CIrredEvCan)
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [WD] irred_aXh {0}:: Ob
p_aXe[tau:2] a_aXg[tau:2] (CNonCanonical)
canonicalize (non-canonical)
[WD] irred_aXh {0}:: Ob p_aXe[tau:2] a_aXg[tau:2] (CNonCanonical)
canEvNC:irred Ob p_aXe[tau:2] a_aXg[tau:2]
can_pred IrredPred = Ob p_aXe[tau:2] a_aXg[tau:2]
flatten { Ob p_aXe[tau:2] a_aXg[tau:2]
matchFamTcM
Matching: Ob p_aXe[tau:2]
Match failed
Following filled tyvar i_aXd[tau:2] = i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
Following filled tyvar p_aXe[tau:2] = p_aX8[sk:2]
Unfilled tyvar p_aX8[sk:2]
Unfilled tyvar i_aX7[sk:2]
Unfilled tyvar i_aX7[sk:2]
flatten/flat-cache hit
Ob [i_aX7[sk:2], p_aX8[sk:2]]
fsk_aXq[fsk]
Unfilled tyvar fsk_aXq[fsk]
Unfilled tyvar i_aX7[sk:2]
Following filled tyvar a_aXg[tau:2] = a_aXb[sk:2]
Unfilled tyvar a_aXb[sk:2]
Unfilled tyvar i_aX7[sk:2]
flatten } fsk_aXq[fsk] a_aXb[sk:2]
Emitting new wanted
irred_aXs :: fsk_aXq[fsk] a_aXb[sk:2]
arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
at T11480b.hs:46:3-23
addTcEvBind
aXi
[W] irred_aXh
= irred_aXs `cast` (Sub (Sym cobox_aXr <a_aXb[sk:2]>_N))
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] irred_aXs {0}:: fsk_aXq[fsk] a_aXb[sk:2] (CIrredEvCan)
addTcEvBind
aXi
[W] irred_aXs = irred_aXc
end stage interact with inerts }
Step 9[l:2,d:0] Irred equal (keep):
[WD] irred_aXs {0}:: fsk_aXq[fsk] a_aXb[sk:2]
End solver pipeline (discharged) }
getUnsolvedInerts
tv eqs = {}
fun eqs = {}
insols = {}
others = {}
implics = {}
Unflattening
{Funeqs =
Tv eqs =}
Unflattening 1 {}
Unflattening 2 {}
Unflattening 3 {}
Unflattening done {}
zonkSimples done: {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {[G] $dFunctor_aXk = sc(($dCategory_aX9, 0)),
[G] $dCategory_aXl = sc(($dFunctor_aXk, 0)),
[G] $dCategory_aXm = sc(($dFunctor_aXk, 1)),
[G] cobox_aXo = CO <Op p_aX8[sk:2]>_N,
[G] $dCategory_aXp
= $dCategory_aXl `cast` (Sub
(Sym (Category <i_aX7[sk:2]>_N (Sym cobox))_N)),
[G] cobox_aXr = CO <Ob p_aX8[sk:2]>_N,
[W] $dCategory_aXf = $dCategory_aX9,
[W] irred_aXh
= irred_aXs `cast` (Sub (Sym cobox_aXr <a_aXb[sk:2]>_N)),
[W] irred_aXs = irred_aXc}
getNoGivenEqs
True
{Type-function equalities = [G] cobox_aXo {0}:: (Op
p_aX8[sk:2] :: (i_aX7[sk:2]
-> i_aX7[sk:2] -> *))
GHC.Prim.~#
(fsk_aXn[fsk] :: (i_aX7[sk:2]
-> i_aX7[sk:2]
-> *)) (CFunEqCan)
[G] cobox_aXr {0}:: (Ob p_aX8[sk:2] :: (i_aX7[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aXq[fsk] :: (i_aX7[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aXk {0}:: Functor
fsk_aXn[fsk]
(Nat p_aX8[sk:2] (->))
p_aX8[sk:2] (CDictCan)
[G] $dCategory_aX9 {0}:: Category p_aX8[sk:2] (CDictCan)
[G] $dCategory_aXp {0}:: Category fsk_aXn[fsk] (CDictCan(psc))
[G] $dCategory_aXm {0}:: Category
(Nat p_aX8[sk:2] (->)) (CDictCan(psc))
Irreds = [G] irred_aXc {0}:: fsk_aXq[fsk] a_aXb[sk:2] (CIrredEvCan)
Unsolved goals = 0}
{}
solveImplication 2
{}
WC {}
setImplicationStatus 2
[$dCategory_aX9, irred_aXc]
([aXk :-> [G] $dFunctor_aXk = sc(($dCategory_aX9, 0)),
aXl :-> [G] $dCategory_aXl = sc(($dFunctor_aXk, 0)),
aXm :-> [G] $dCategory_aXm = sc(($dFunctor_aXk, 1)),
aXo :-> [G] cobox_aXo = CO <Op p_aX8[sk:2]>_N,
aXp :-> [G] $dCategory_aXp
= $dCategory_aXl `cast` (Sub
(Sym (Category <i_aX7[sk:2]>_N (Sym cobox))_N)),
aXr :-> [G] cobox_aXr = CO <Ob p_aX8[sk:2]>_N,
aXf :-> [W] $dCategory_aXf = $dCategory_aX9,
aXh :-> [W] irred_aXh
= irred_aXs `cast` (Sub (Sym cobox_aXr <a_aXb[sk:2]>_N)),
aXs :-> [W] irred_aXs = irred_aXc],
[])
[aX9 :-> $dCategory_aX9, aXc :-> irred_aXc]
solveImplication end }
no_given_eqs = False
floated_eqs = {}
res_implic = Nothing
implication evbinds = {[G] $dFunctor_aXk = sc(($dCategory_aX9, 0)),
[G] $dCategory_aXl = sc(($dFunctor_aXk, 0)),
[G] $dCategory_aXm = sc(($dFunctor_aXk, 1)),
[G] cobox_aXo = CO <Op p_aX8[sk:2]>_N,
[G] $dCategory_aXp
= $dCategory_aXl `cast` (Sub
(Sym
(Category <i_aX7[sk:2]>_N (Sym cobox))_N)),
[G] cobox_aXr = CO <Ob p_aX8[sk:2]>_N,
[W] $dCategory_aXf = $dCategory_aX9,
[W] irred_aXh
= irred_aXs `cast` (Sub (Sym cobox_aXr <a_aXb[sk:2]>_N)),
[W] irred_aXs = irred_aXc}
implication tvcs = []
solveNestedImplications end }
all floated_eqs = {}
unsolved_implics = {Nothing}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
Constraint solver steps = 9
End simplifyAmbiguityCheck }
reportUnsolved(ambig) {
newTcEvBinds unique = aXt
reportUnsolved(ambig) }
Done ambiguity check for
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a
checkValidType done
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i). Ob p a => p a a :: *
class op type
forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
checkValidType
forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c :: *
check_type
forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
True
check_valid_theta [Category p]
check_type
forall (b :: i_aL2[sk:1]) (c :: i_aL2[sk:1]) (a :: i_aL2[sk:1]).
p_aL3[sk:1] b c -> p_aL3[sk:1] a b -> p_aL3[sk:1] a c
True
Ambiguity check for
forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
tcSubType_NC
the type signature for ‘.’
forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
tc_sub_tc_type (general case)
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
ty_expected = forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
tcSkolemise
tcSkolemise
1
expected_ty forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
inst tyvars [i_aXv[sk:2], p_aXw[sk:2], b_aXz[sk:2], c_aXA[sk:2],
a_aXB[sk:2]]
given [$dCategory_aXx]
inst type p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
tc_sub_type_ds
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
ty_expected = p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
instCallConstraints [$dCategory_aXE]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
~
forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
type forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
theta [Category p]
leave_bndrs []
with [i_aXC[tau:2], p_aXD[tau:2]]
theta: [Category p_aXD[tau:2]]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
~
forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
type forall (b :: i_aXC[tau:2]) (c :: i_aXC[tau:2]) (a :: i_aXC[tau:2]).
p_aXD[tau:2] b c -> p_aXD[tau:2] a b -> p_aXD[tau:2] a c
theta []
leave_bndrs []
with [b_aXF[tau:2], c_aXG[tau:2], a_aXH[tau:2]]
theta: []
tc_sub_type_ds
ty_actual = p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
ty_expected = p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
tc_sub_type_ds
ty_actual = p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
ty_expected = p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
tc_sub_type_ds
ty_actual = p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
ty_expected = p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
deeply_instantiate final subst
origin: arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
~
forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
type: p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
new type: p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
subst: [TCvSubst
In scope: InScope {i_aXC p_aXD c_aXG a_aXH}
Type env: []
Co env: []]
u_tys
tclvl 2
p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys
tclvl 2
p_aXD[tau:2] a_aXH[tau:2] ~ p_aXw[sk:2] a_aXB[sk:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys
tclvl 2
p_aXD[tau:2] ~ p_aXw[sk:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys
tclvl 2
i_aXv[sk:2] -> i_aXv[sk:2] -> * ~ i_aXC[tau:2] -> i_aXC[tau:2] -> *
arising from a kind equality arising from
p_aXD[tau:2] ~ p_aXw[sk:2]
u_tys
tclvl 2
i_aXv[sk:2] ~ i_aXC[tau:2]
arising from a kind equality arising from
p_aXD[tau:2] ~ p_aXw[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
i_aXC[tau:2] ~ i_aXv[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aXC[tau:2] ~ i_aXv[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aXC[tau:2] := i_aXv[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
i_aXv[sk:2] -> * ~ i_aXC[tau:2] -> *
arising from a kind equality arising from
p_aXD[tau:2] ~ p_aXw[sk:2]
u_tys
tclvl 2
i_aXv[sk:2] ~ i_aXC[tau:2]
arising from a kind equality arising from
p_aXD[tau:2] ~ p_aXw[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
p_aXD[tau:2] ~ p_aXw[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar p_aXD[tau:2] := p_aXw[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
a_aXH[tau:2] ~ a_aXB[sk:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys
tclvl 2
i_aXv[sk:2] ~ i_aXC[tau:2]
arising from a kind equality arising from
a_aXH[tau:2] ~ a_aXB[sk:2]
u_tys yields no coercion
writeMetaTyVar a_aXH[tau:2] := a_aXB[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
c_aXG[tau:2] ~ c_aXA[sk:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys
tclvl 2
i_aXv[sk:2] ~ i_aXC[tau:2]
arising from a kind equality arising from
c_aXG[tau:2] ~ c_aXA[sk:2]
u_tys yields no coercion
writeMetaTyVar c_aXG[tau:2] := c_aXA[sk:2]
u_tys yields no coercion
u_tys yields no coercion
tc_sub_tc_type (general case)
ty_actual = p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
ty_expected = p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
tcSkolemise
tcSkolemise
2
expected_ty p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
inst tyvars []
given []
inst type p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
tc_sub_type_ds
ty_actual = p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
ty_expected = p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
deeply_instantiate final subst
origin: arising from a type expected by the context:
p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
type: p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
new type: p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
subst: [TCvSubst
In scope: InScope {i_aXv p_aXw b_aXz a_aXB}
Type env: []
Co env: []]
u_tys
tclvl 2
p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
~
p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys
tclvl 2
p_aXw[sk:2] a_aXB[sk:2] ~ p_aXD[tau:2] a_aXH[tau:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys
tclvl 2
p_aXw[sk:2] ~ p_aXD[tau:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
a_aXB[sk:2] ~ a_aXH[tau:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
b_aXz[sk:2] ~ b_aXF[tau:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys
tclvl 2
i_aXv[sk:2] ~ i_aXv[sk:2]
arising from a kind equality arising from
b_aXF[tau:2] ~ b_aXz[sk:2]
u_tys yields no coercion
writeMetaTyVar b_aXF[tau:2] := b_aXz[sk:2]
u_tys yields no coercion
u_tys yields no coercion
tc_sub_tc_type (general case)
ty_actual = p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
ty_expected = p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
tcSkolemise
tcSkolemise
2
expected_ty p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
inst tyvars []
given []
inst type p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
tc_sub_type_ds
ty_actual = p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
ty_expected = p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
deeply_instantiate final subst
origin: arising from a type expected by the context:
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
type: p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
new type: p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
subst: [TCvSubst
In scope: InScope {i_aXv p_aXw b_aXz c_aXA}
Type env: []
Co env: []]
u_tys
tclvl 2
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
~
p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys
tclvl 2
p_aXw[sk:2] b_aXz[sk:2] ~ p_aXD[tau:2] b_aXF[tau:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys
tclvl 2
p_aXw[sk:2] ~ p_aXD[tau:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
b_aXz[sk:2] ~ b_aXF[tau:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
c_aXA[sk:2] ~ c_aXG[tau:2]
arising from a type equality p_aXD[tau:2] b_aXF[tau:2] c_aXG[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] b_aXF[tau:2]
-> p_aXD[tau:2] a_aXH[tau:2] c_aXG[tau:2]
~
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2]
u_tys yields no coercion
u_tys yields no coercion
newTcEvBinds unique = aXI
simplifyAmbiguityCheck {
type = forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
wanted = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aXv[sk:2]
(p_aXw[sk:2] :: i_aXv[sk:2] -> i_aXv[sk:2] -> *)
(b_aXz[sk:2] :: i_aXv[sk:2])
(c_aXA[sk:2] :: i_aXv[sk:2])
(a_aXB[sk:2] :: i_aXv[sk:2])
No-eqs = False
Status = Unsolved
Given = $dCategory_aXx :: Category p_aXw[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aXE {0}:: Category p_aXD[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aXI>
Needed = []
the type signature for:
(.) :: Category p_aXw[sk:2] =>
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2] }}
newTcEvBinds unique = aXJ
solveWanteds {
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aXv[sk:2]
(p_aXw[sk:2] :: i_aXv[sk:2] -> i_aXv[sk:2] -> *)
(b_aXz[sk:2] :: i_aXv[sk:2])
(c_aXA[sk:2] :: i_aXv[sk:2])
(a_aXB[sk:2] :: i_aXv[sk:2])
No-eqs = False
Status = Unsolved
Given = $dCategory_aXx :: Category p_aXw[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aXE {0}:: Category p_aXD[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aXI>
Needed = []
the type signature for:
(.) :: Category p_aXw[sk:2] =>
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2] }}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveNestedImplications starting {
solveImplication {
Implic {
TcLevel = 2
Skolems = i_aXv[sk:2]
(p_aXw[sk:2] :: i_aXv[sk:2] -> i_aXv[sk:2] -> *)
(b_aXz[sk:2] :: i_aXv[sk:2])
(c_aXA[sk:2] :: i_aXv[sk:2])
(a_aXB[sk:2] :: i_aXv[sk:2])
No-eqs = False
Status = Unsolved
Given = $dCategory_aXx :: Category p_aXw[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aXE {0}:: Category p_aXD[tau:2] (CNonCanonical)}
Binds = EvBindsVar<aXI>
Needed = []
the type signature for:
(.) :: Category p_aXw[sk:2] =>
p_aXw[sk:2] b_aXz[sk:2] c_aXA[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] b_aXz[sk:2]
-> p_aXw[sk:2] a_aXB[sk:2] c_aXA[sk:2] }
Inerts {Unsolved goals = 0}
solveSimpleGivens {
[[G] $dCategory_aXx {0}:: Category p_aXw[sk:2] (CNonCanonical)]
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aXx {0}:: Category
p_aXw[sk:2] (CNonCanonical)
inerts = {Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dCategory_aXx {0}:: Category
p_aXw[sk:2] (CNonCanonical)
canonicalize (non-canonical)
[G] $dCategory_aXx {0}:: Category p_aXw[sk:2] (CNonCanonical)
canEvNC:cls Category [i_aXv[sk:2], p_aXw[sk:2]]
addTcEvBind
aXI
[G] $dFunctor_aXK = sc(($dCategory_aXx, 0))
mk_superclasses_of
Functor [i_aXv[sk:2], i_aXv[sk:2] -> *, Op p_aXw[sk:2],
Nat p_aXw[sk:2] (->), p_aXw[sk:2]]
False
[rKp :-> Category]
addTcEvBind
aXI
[G] $dCategory_aXL = sc(($dFunctor_aXK, 0))
addTcEvBind
aXI
[G] $dCategory_aXM = sc(($dFunctor_aXK, 1))
mk_superclasses_of: loop Category [i_aXv[sk:2], Op p_aXw[sk:2]]
mk_superclasses_of: loop
Category [i_aXv[sk:2] -> *, Nat p_aXw[sk:2] (->)]
Emitting fresh work
[G] $dFunctor_aXK {0}:: Functor
(Op p_aXw[sk:2]) (Nat p_aXw[sk:2] (->)) p_aXw[sk:2] (CDictCan)
[G] $dCategory_aXL {0}:: Category (Op p_aXw[sk:2]) (CDictCan(psc))
[G] $dCategory_aXM {0}:: Category
(Nat p_aXw[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aXv[sk:2]
p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
flatten }
i_aXv[sk:2]
p_aXw[sk:2]
canClass
[G] $dCategory_aXx {0}:: Category p_aXw[sk:2]
Category p_aXw[sk:2]
ContinueWith [G] $dCategory_aXx {0}:: Category p_aXw[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aXx {0}:: Category
p_aXw[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aXx {0}:: Category
p_aXw[sk:2] (CDictCan)
doTopReact [G] $dCategory_aXx {0}:: Category p_aXw[sk:2] (CDictCan)
try_fundeps
[G] $dCategory_aXx {0}:: Category p_aXw[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aXx {0}:: Category
p_aXw[sk:2] (CDictCan)
addInertCan }
Step 1[l:2,d:0] Kept as inert:
[G] $dCategory_aXx {0}:: Category p_aXw[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aXx {0}:: Category
p_aXw[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aXK {0}:: Functor
(Op p_aXw[sk:2])
(Nat p_aXw[sk:2] (->))
p_aXw[sk:2] (CDictCan)
inerts = {Dictionaries = [G] $dCategory_aXx {0}:: Category
p_aXw[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aXL {0}:: Category
(Op p_aXw[sk:2]) (CDictCan(psc))
[G] $dCategory_aXM {0}:: Category
(Nat
p_aXw[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dFunctor_aXK {0}:: Functor
(Op p_aXw[sk:2])
(Nat p_aXw[sk:2] (->))
p_aXw[sk:2] (CDictCan)
flatten_many {
i_aXv[sk:2]
i_aXv[sk:2] -> *
Op p_aXw[sk:2]
Nat p_aXw[sk:2] (->)
p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
matchFamTcM
Matching: Op p_aXw[sk:2]
Match failed
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
matchFamTcM
Matching: Op p_aXw[sk:2]
Match failed
addTcEvBind
aXI
[G] cobox_aXO = CO <Op p_aXw[sk:2]>_N
extendFlatCache
Op [i_aXv[sk:2], i_aXv[sk:2], p_aXw[sk:2]]
[G]
fsk_aXN[fsk]
flatten/flat-cache miss
Op [i_aXv[sk:2], i_aXv[sk:2], p_aXw[sk:2]]
fsk_aXN[fsk]
[G] cobox_aXO {0}:: (Op p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2] -> i_aXv[sk:2] -> *))
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
flatten }
i_aXv[sk:2]
i_aXv[sk:2] -> *
fsk_aXN[fsk]
Nat p_aXw[sk:2] (->)
p_aXw[sk:2]
canClass
[G] $dFunctor_aXK {0}:: Functor
(Op p_aXw[sk:2]) (Nat p_aXw[sk:2] (->)) p_aXw[sk:2]
Functor fsk_aXN[fsk] (Nat p_aXw[sk:2] (->)) p_aXw[sk:2]
ContinueWith [G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk] (Nat p_aXw[sk:2] (->)) p_aXw[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk] (Nat p_aXw[sk:2] (->)) p_aXw[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk] (Nat p_aXw[sk:2] (->)) p_aXw[sk:2] (CDictCan)
doTopReact
[G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk] (Nat p_aXw[sk:2] (->)) p_aXw[sk:2] (CDictCan)
try_fundeps
[G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk] (Nat p_aXw[sk:2] (->)) p_aXw[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk]
(Nat p_aXw[sk:2] (->))
p_aXw[sk:2] (CDictCan)
addInertCan }
Step 2[l:2,d:0] Kept as inert:
[G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk] (Nat p_aXw[sk:2] (->)) p_aXw[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk] (Nat p_aXw[sk:2] (->)) p_aXw[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aXO {0}:: (Op p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2] -> i_aXv[sk:2] -> *)) (CFunEqCan)
inerts = {Dictionaries = [G] $dCategory_aXx {0}:: Category
p_aXw[sk:2] (CDictCan)
[G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk]
(Nat p_aXw[sk:2] (->))
p_aXw[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aXL {0}:: Category
(Op p_aXw[sk:2]) (CDictCan(psc))
[G] $dCategory_aXM {0}:: Category
(Nat
p_aXw[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] cobox_aXO {0}:: (Op p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2] -> i_aXv[sk:2] -> *)) (CFunEqCan)
flatten_many {
i_aXv[sk:2]
i_aXv[sk:2]
p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
flatten }
i_aXv[sk:2]
i_aXv[sk:2]
p_aXw[sk:2]
extendFlatCache
Op [i_aXv[sk:2], i_aXv[sk:2], p_aXw[sk:2]]
[G]
fsk_aXN[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aXO {0}:: (Op p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2] -> i_aXv[sk:2] -> *)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aXO {0}:: (Op p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2] -> i_aXv[sk:2] -> *)) (CFunEqCan)
doTopReact
[G] cobox_aXO {0}:: (Op p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2] -> i_aXv[sk:2] -> *)) (CFunEqCan)
matchFamTcM
Matching: Op p_aXw[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aXO {0}:: (Op
p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2]
-> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2]
-> i_aXv[sk:2]
-> *)) (CFunEqCan)
addInertCan }
Step 3[l:2,d:0] Kept as inert:
[G] cobox_aXO {0}:: (Op p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2] -> i_aXv[sk:2] -> *))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aXO {0}:: (Op p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2] -> i_aXv[sk:2] -> *)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aXL {0}:: Category
(Op p_aXw[sk:2]) (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aXO {0}:: (Op
p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2]
-> i_aXv[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aXx {0}:: Category
p_aXw[sk:2] (CDictCan)
[G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk]
(Nat p_aXw[sk:2] (->))
p_aXw[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aXM {0}:: Category
(Nat
p_aXw[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dCategory_aXL {0}:: Category
(Op p_aXw[sk:2]) (CDictCan(psc))
flatten_many {
i_aXv[sk:2]
Op p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
matchFamTcM
Matching: Op p_aXw[sk:2]
Match failed
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
flatten/flat-cache hit
Op [i_aXv[sk:2], i_aXv[sk:2], p_aXw[sk:2]]
fsk_aXN[fsk]
Unfilled tyvar fsk_aXN[fsk]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
flatten }
i_aXv[sk:2]
fsk_aXN[fsk]
addTcEvBind
aXI
[G] $dCategory_aXP
= $dCategory_aXL `cast` (Sub
(Sym (Category <i_aXv[sk:2]>_N (Sym cobox))_N))
canClass
[G] $dCategory_aXL {0}:: Category (Op p_aXw[sk:2])
Category fsk_aXN[fsk]
ContinueWith [G] $dCategory_aXP {0}:: Category fsk_aXN[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aXP {0}:: Category
fsk_aXN[fsk] (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aXP {0}:: Category
fsk_aXN[fsk] (CDictCan(psc))
doTopReact
[G] $dCategory_aXP {0}:: Category fsk_aXN[fsk] (CDictCan(psc))
try_fundeps
[G] $dCategory_aXP {0}:: Category fsk_aXN[fsk] (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aXP {0}:: Category
fsk_aXN[fsk] (CDictCan(psc))
addInertCan }
Step 4[l:2,d:0] Kept as inert:
[G] $dCategory_aXP {0}:: Category fsk_aXN[fsk]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aXP {0}:: Category
fsk_aXN[fsk] (CDictCan(psc))
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aXM {0}:: Category
(Nat p_aXw[sk:2] (->)) (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aXO {0}:: (Op
p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2]
-> i_aXv[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk]
(Nat p_aXw[sk:2] (->))
p_aXw[sk:2] (CDictCan)
[G] $dCategory_aXx {0}:: Category p_aXw[sk:2] (CDictCan)
[G] $dCategory_aXP {0}:: Category fsk_aXN[fsk] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dCategory_aXM {0}:: Category
(Nat p_aXw[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aXv[sk:2] -> *
Nat p_aXw[sk:2] (->)
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
flatten }
i_aXv[sk:2] -> *
Nat p_aXw[sk:2] (->)
canClass
[G] $dCategory_aXM {0}:: Category (Nat p_aXw[sk:2] (->))
Category (Nat p_aXw[sk:2] (->))
ContinueWith [G] $dCategory_aXM {0}:: Category
(Nat p_aXw[sk:2] (->))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aXM {0}:: Category
(Nat p_aXw[sk:2] (->)) (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aXM {0}:: Category
(Nat p_aXw[sk:2] (->)) (CDictCan(psc))
doTopReact
[G] $dCategory_aXM {0}:: Category
(Nat p_aXw[sk:2] (->)) (CDictCan(psc))
try_fundeps
[G] $dCategory_aXM {0}:: Category
(Nat p_aXw[sk:2] (->)) (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aXM {0}:: Category
(Nat
p_aXw[sk:2]
(->)) (CDictCan(psc))
addInertCan }
Step 5[l:2,d:0] Kept as inert:
[G] $dCategory_aXM {0}:: Category (Nat p_aXw[sk:2] (->))
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aXM {0}:: Category
(Nat p_aXw[sk:2] (->)) (CDictCan(psc))
End solveSimpleGivens }
solveWanteds {
WC {wc_simple =
[WD] $dCategory_aXE {0}:: Category p_aXD[tau:2] (CNonCanonical)}
solveSimpleWanteds {
{[WD] $dCategory_aXE {0}:: Category p_aXD[tau:2] (CNonCanonical)}
-----------------------------
Start solver pipeline {
work item = [WD] $dCategory_aXE {0}:: Category
p_aXD[tau:2] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aXO {0}:: (Op
p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2]
-> i_aXv[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk]
(Nat p_aXw[sk:2] (->))
p_aXw[sk:2] (CDictCan)
[G] $dCategory_aXx {0}:: Category p_aXw[sk:2] (CDictCan)
[G] $dCategory_aXP {0}:: Category fsk_aXN[fsk] (CDictCan(psc))
[G] $dCategory_aXM {0}:: Category
(Nat p_aXw[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [WD] $dCategory_aXE {0}:: Category
p_aXD[tau:2] (CNonCanonical)
canonicalize (non-canonical)
[WD] $dCategory_aXE {0}:: Category p_aXD[tau:2] (CNonCanonical)
canEvNC:cls Category [i_aXC[tau:2], p_aXD[tau:2]]
flatten_many {
i_aXC[tau:2]
p_aXD[tau:2]
Following filled tyvar i_aXC[tau:2] = i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
Following filled tyvar p_aXD[tau:2] = p_aXw[sk:2]
Unfilled tyvar p_aXw[sk:2]
Unfilled tyvar i_aXv[sk:2]
Unfilled tyvar i_aXv[sk:2]
flatten }
i_aXv[sk:2]
p_aXw[sk:2]
canClass
[WD] $dCategory_aXE {0}:: Category p_aXD[tau:2]
Category p_aXw[sk:2]
ContinueWith [WD] $dCategory_aXE {0}:: Category p_aXw[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] $dCategory_aXE {0}:: Category
p_aXw[sk:2] (CDictCan(psc))
addTcEvBind
aXI
[W] $dCategory_aXE = $dCategory_aXx
end stage interact with inerts }
Step 6[l:2,d:0] Dict equal (keep):
[WD] $dCategory_aXE {0}:: Category p_aXw[sk:2]
End solver pipeline (discharged) }
getUnsolvedInerts
tv eqs = {}
fun eqs = {}
insols = {}
others = {}
implics = {}
Unflattening
{Funeqs =
Tv eqs =}
Unflattening 1 {}
Unflattening 2 {}
Unflattening 3 {}
Unflattening done {}
zonkSimples done: {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {[G] $dFunctor_aXK = sc(($dCategory_aXx, 0)),
[G] $dCategory_aXL = sc(($dFunctor_aXK, 0)),
[G] $dCategory_aXM = sc(($dFunctor_aXK, 1)),
[G] cobox_aXO = CO <Op p_aXw[sk:2]>_N,
[G] $dCategory_aXP
= $dCategory_aXL `cast` (Sub
(Sym (Category <i_aXv[sk:2]>_N (Sym cobox))_N)),
[W] $dCategory_aXE = $dCategory_aXx}
getNoGivenEqs
False
{Type-function equalities = [G] cobox_aXO {0}:: (Op
p_aXw[sk:2] :: (i_aXv[sk:2]
-> i_aXv[sk:2] -> *))
GHC.Prim.~#
(fsk_aXN[fsk] :: (i_aXv[sk:2]
-> i_aXv[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aXK {0}:: Functor
fsk_aXN[fsk]
(Nat p_aXw[sk:2] (->))
p_aXw[sk:2] (CDictCan)
[G] $dCategory_aXx {0}:: Category p_aXw[sk:2] (CDictCan)
[G] $dCategory_aXP {0}:: Category fsk_aXN[fsk] (CDictCan(psc))
[G] $dCategory_aXM {0}:: Category
(Nat p_aXw[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
{}
floatEqualities
Skols = [i_aXv[sk:2], p_aXw[sk:2], b_aXz[sk:2], c_aXA[sk:2],
a_aXB[sk:2]]
Simples = {}
Floated eqs = {}
solveImplication 2
{}
WC {}
setImplicationStatus 2
[$dCategory_aXx]
([aXK :-> [G] $dFunctor_aXK = sc(($dCategory_aXx, 0)),
aXL :-> [G] $dCategory_aXL = sc(($dFunctor_aXK, 0)),
aXM :-> [G] $dCategory_aXM = sc(($dFunctor_aXK, 1)),
aXO :-> [G] cobox_aXO = CO <Op p_aXw[sk:2]>_N,
aXP :-> [G] $dCategory_aXP
= $dCategory_aXL `cast` (Sub
(Sym (Category <i_aXv[sk:2]>_N (Sym cobox))_N)),
aXE :-> [W] $dCategory_aXE = $dCategory_aXx],
[])
[aXx :-> $dCategory_aXx]
solveImplication end }
no_given_eqs = True
floated_eqs = {}
res_implic = Nothing
implication evbinds = {[G] $dFunctor_aXK = sc(($dCategory_aXx, 0)),
[G] $dCategory_aXL = sc(($dFunctor_aXK, 0)),
[G] $dCategory_aXM = sc(($dFunctor_aXK, 1)),
[G] cobox_aXO = CO <Op p_aXw[sk:2]>_N,
[G] $dCategory_aXP
= $dCategory_aXL `cast` (Sub
(Sym
(Category <i_aXv[sk:2]>_N (Sym cobox))_N)),
[W] $dCategory_aXE = $dCategory_aXx}
implication tvcs = []
solveNestedImplications end }
all floated_eqs = {}
unsolved_implics = {Nothing}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
Constraint solver steps = 6
End simplifyAmbiguityCheck }
reportUnsolved(ambig) {
newTcEvBinds unique = aXQ
reportUnsolved(ambig) }
Done ambiguity check for
forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c
checkValidType done
forall i (p :: i -> i -> *).
Category p =>
forall (b :: i) (c :: i) (a :: i). p b c -> p a b -> p a c :: *
class op type
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
checkValidType
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a) :: *
check_type
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
True
check_valid_theta [Category p]
check_type
forall (a :: i_aL2[sk:1]) (b :: i_aL2[sk:1]).
p_aL3[sk:1] a b -> Dict (Ob p_aL3[sk:1] a)
True
Ambiguity check for
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
tcSubType_NC
the type signature for ‘source’
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
tc_sub_tc_type (general case)
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
ty_expected = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
tcSkolemise
tcSkolemise
1
expected_ty forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
inst tyvars [i_aXS[sk:2], p_aXT[sk:2], a_aXW[sk:2], b_aXX[sk:2]]
given [$dCategory_aXU]
inst type p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
tc_sub_type_ds
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
ty_expected = p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
instCallConstraints [$dCategory_aY0]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
type forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
theta [Category p]
leave_bndrs []
with [i_aXY[tau:2], p_aXZ[tau:2]]
theta: [Category p_aXZ[tau:2]]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
type forall (a :: i_aXY[tau:2]) (b :: i_aXY[tau:2]).
p_aXZ[tau:2] a b -> Dict (Ob p_aXZ[tau:2] a)
theta []
leave_bndrs []
with [a_aY1[tau:2], b_aY2[tau:2]]
theta: []
tc_sub_type_ds
ty_actual = p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
-> Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
ty_expected = p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
tc_sub_type_ds
ty_actual = Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
ty_expected = Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
deeply_instantiate final subst
origin: arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
type: Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
new type: Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
subst: [TCvSubst
In scope: InScope {i_aXY p_aXZ a_aY1}
Type env: []
Co env: []]
u_tys
tclvl 2
Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
~
Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
arising from a type equality p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
-> Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
~
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
u_tys
tclvl 2
Ob p_aXZ[tau:2] a_aY1[tau:2] ~ Ob p_aXT[sk:2] a_aXW[sk:2]
arising from a type equality p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
-> Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
~
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
New coercion hole: aY3
utype_defer
U(hole:{aY3}, Ob p_aXZ[tau:2] a_aY1[tau:2], Ob
p_aXT[sk:2] a_aXW[sk:2])_N
Ob p_aXZ[tau:2] a_aY1[tau:2]
Ob p_aXT[sk:2] a_aXW[sk:2]
arising from a type equality p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
-> Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
~
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
In the ambiguity check for ‘source’
To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
When checking the class method:
source :: forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
In the class declaration for ‘Category’
u_tys yields coercion:
U(hole:{aY3}, Ob p_aXZ[tau:2] a_aY1[tau:2], Ob
p_aXT[sk:2] a_aXW[sk:2])_N
u_tys yields coercion: (Dict {aY3})_N
tc_sub_tc_type (general case)
ty_actual = p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
ty_expected = p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
tcSkolemise
tcSkolemise
2
expected_ty p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
inst tyvars []
given []
inst type p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
tc_sub_type_ds
ty_actual = p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
ty_expected = p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
deeply_instantiate final subst
origin: arising from a type expected by the context:
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
type: p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
new type: p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
subst: [TCvSubst
In scope: InScope {i_aXS p_aXT a_aXW b_aXX}
Type env: []
Co env: []]
u_tys
tclvl 2
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
~
p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
arising from a type equality p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
-> Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
~
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
u_tys
tclvl 2
p_aXT[sk:2] a_aXW[sk:2] ~ p_aXZ[tau:2] a_aY1[tau:2]
arising from a type equality p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
-> Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
~
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
u_tys
tclvl 2
p_aXT[sk:2] ~ p_aXZ[tau:2]
arising from a type equality p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
-> Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
~
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
u_tys
tclvl 2
i_aXS[sk:2] -> i_aXS[sk:2] -> * ~ i_aXY[tau:2] -> i_aXY[tau:2] -> *
arising from a kind equality arising from
p_aXZ[tau:2] ~ p_aXT[sk:2]
u_tys
tclvl 2
i_aXS[sk:2] ~ i_aXY[tau:2]
arising from a kind equality arising from
p_aXZ[tau:2] ~ p_aXT[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
i_aXY[tau:2] ~ i_aXS[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aXY[tau:2] ~ i_aXS[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aXY[tau:2] := i_aXS[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
i_aXS[sk:2] -> * ~ i_aXY[tau:2] -> *
arising from a kind equality arising from
p_aXZ[tau:2] ~ p_aXT[sk:2]
u_tys
tclvl 2
i_aXS[sk:2] ~ i_aXY[tau:2]
arising from a kind equality arising from
p_aXZ[tau:2] ~ p_aXT[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
p_aXZ[tau:2] ~ p_aXT[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar p_aXZ[tau:2] := p_aXT[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
a_aXW[sk:2] ~ a_aY1[tau:2]
arising from a type equality p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
-> Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
~
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
u_tys
tclvl 2
i_aXS[sk:2] ~ i_aXS[sk:2]
arising from a kind equality arising from
a_aY1[tau:2] ~ a_aXW[sk:2]
u_tys yields no coercion
writeMetaTyVar a_aY1[tau:2] := a_aXW[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
b_aXX[sk:2] ~ b_aY2[tau:2]
arising from a type equality p_aXZ[tau:2] a_aY1[tau:2] b_aY2[tau:2]
-> Dict (Ob p_aXZ[tau:2] a_aY1[tau:2])
~
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2])
u_tys
tclvl 2
i_aXS[sk:2] ~ i_aXS[sk:2]
arising from a kind equality arising from
b_aY2[tau:2] ~ b_aXX[sk:2]
u_tys yields no coercion
writeMetaTyVar b_aY2[tau:2] := b_aXX[sk:2]
u_tys yields no coercion
u_tys yields no coercion
newTcEvBinds unique = aY4
simplifyAmbiguityCheck {
type = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
wanted = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aXS[sk:2]
(p_aXT[sk:2] :: i_aXS[sk:2] -> i_aXS[sk:2] -> *)
(a_aXW[sk:2] :: i_aXS[sk:2])
(b_aXX[sk:2] :: i_aXS[sk:2])
No-eqs = False
Status = Unsolved
Given = $dCategory_aXU :: Category p_aXT[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aY0 {0}:: Category p_aXZ[tau:2] (CNonCanonical)
[WD] hole{aY3} {0}:: (Ob p_aXZ[tau:2] a_aY1[tau:2] :: Constraint)
GHC.Prim.~#
(Ob
p_aXT[sk:2]
a_aXW[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aY4>
Needed = []
the type signature for:
source :: Category p_aXT[sk:2] =>
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2]) }}
newTcEvBinds unique = aY5
solveWanteds {
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aXS[sk:2]
(p_aXT[sk:2] :: i_aXS[sk:2] -> i_aXS[sk:2] -> *)
(a_aXW[sk:2] :: i_aXS[sk:2])
(b_aXX[sk:2] :: i_aXS[sk:2])
No-eqs = False
Status = Unsolved
Given = $dCategory_aXU :: Category p_aXT[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aY0 {0}:: Category p_aXZ[tau:2] (CNonCanonical)
[WD] hole{aY3} {0}:: (Ob p_aXZ[tau:2] a_aY1[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aXT[sk:2] a_aXW[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aY4>
Needed = []
the type signature for:
source :: Category p_aXT[sk:2] =>
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2]) }}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveNestedImplications starting {
solveImplication {
Implic {
TcLevel = 2
Skolems = i_aXS[sk:2]
(p_aXT[sk:2] :: i_aXS[sk:2] -> i_aXS[sk:2] -> *)
(a_aXW[sk:2] :: i_aXS[sk:2])
(b_aXX[sk:2] :: i_aXS[sk:2])
No-eqs = False
Status = Unsolved
Given = $dCategory_aXU :: Category p_aXT[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aY0 {0}:: Category p_aXZ[tau:2] (CNonCanonical)
[WD] hole{aY3} {0}:: (Ob p_aXZ[tau:2] a_aY1[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aXT[sk:2] a_aXW[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aY4>
Needed = []
the type signature for:
source :: Category p_aXT[sk:2] =>
p_aXT[sk:2] a_aXW[sk:2] b_aXX[sk:2]
-> Dict (Ob p_aXT[sk:2] a_aXW[sk:2]) }
Inerts {Unsolved goals = 0}
solveSimpleGivens {
[[G] $dCategory_aXU {0}:: Category p_aXT[sk:2] (CNonCanonical)]
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aXU {0}:: Category
p_aXT[sk:2] (CNonCanonical)
inerts = {Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dCategory_aXU {0}:: Category
p_aXT[sk:2] (CNonCanonical)
canonicalize (non-canonical)
[G] $dCategory_aXU {0}:: Category p_aXT[sk:2] (CNonCanonical)
canEvNC:cls Category [i_aXS[sk:2], p_aXT[sk:2]]
addTcEvBind
aY4
[G] $dFunctor_aY6 = sc(($dCategory_aXU, 0))
mk_superclasses_of
Functor [i_aXS[sk:2], i_aXS[sk:2] -> *, Op p_aXT[sk:2],
Nat p_aXT[sk:2] (->), p_aXT[sk:2]]
False
[rKp :-> Category]
addTcEvBind
aY4
[G] $dCategory_aY7 = sc(($dFunctor_aY6, 0))
addTcEvBind
aY4
[G] $dCategory_aY8 = sc(($dFunctor_aY6, 1))
mk_superclasses_of: loop Category [i_aXS[sk:2], Op p_aXT[sk:2]]
mk_superclasses_of: loop
Category [i_aXS[sk:2] -> *, Nat p_aXT[sk:2] (->)]
Emitting fresh work
[G] $dFunctor_aY6 {0}:: Functor
(Op p_aXT[sk:2]) (Nat p_aXT[sk:2] (->)) p_aXT[sk:2] (CDictCan)
[G] $dCategory_aY7 {0}:: Category (Op p_aXT[sk:2]) (CDictCan(psc))
[G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aXS[sk:2]
p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
flatten }
i_aXS[sk:2]
p_aXT[sk:2]
canClass
[G] $dCategory_aXU {0}:: Category p_aXT[sk:2]
Category p_aXT[sk:2]
ContinueWith [G] $dCategory_aXU {0}:: Category p_aXT[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aXU {0}:: Category
p_aXT[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aXU {0}:: Category
p_aXT[sk:2] (CDictCan)
doTopReact [G] $dCategory_aXU {0}:: Category p_aXT[sk:2] (CDictCan)
try_fundeps
[G] $dCategory_aXU {0}:: Category p_aXT[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aXU {0}:: Category
p_aXT[sk:2] (CDictCan)
addInertCan }
Step 1[l:2,d:0] Kept as inert:
[G] $dCategory_aXU {0}:: Category p_aXT[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aXU {0}:: Category
p_aXT[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aY6 {0}:: Functor
(Op p_aXT[sk:2])
(Nat p_aXT[sk:2] (->))
p_aXT[sk:2] (CDictCan)
inerts = {Dictionaries = [G] $dCategory_aXU {0}:: Category
p_aXT[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aY7 {0}:: Category
(Op p_aXT[sk:2]) (CDictCan(psc))
[G] $dCategory_aY8 {0}:: Category
(Nat
p_aXT[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dFunctor_aY6 {0}:: Functor
(Op p_aXT[sk:2])
(Nat p_aXT[sk:2] (->))
p_aXT[sk:2] (CDictCan)
flatten_many {
i_aXS[sk:2]
i_aXS[sk:2] -> *
Op p_aXT[sk:2]
Nat p_aXT[sk:2] (->)
p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
matchFamTcM
Matching: Op p_aXT[sk:2]
Match failed
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
matchFamTcM
Matching: Op p_aXT[sk:2]
Match failed
addTcEvBind
aY4
[G] cobox_aYa = CO <Op p_aXT[sk:2]>_N
extendFlatCache
Op [i_aXS[sk:2], i_aXS[sk:2], p_aXT[sk:2]]
[G]
fsk_aY9[fsk]
flatten/flat-cache miss
Op [i_aXS[sk:2], i_aXS[sk:2], p_aXT[sk:2]]
fsk_aY9[fsk]
[G] cobox_aYa {0}:: (Op p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2] -> i_aXS[sk:2] -> *))
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
flatten }
i_aXS[sk:2]
i_aXS[sk:2] -> *
fsk_aY9[fsk]
Nat p_aXT[sk:2] (->)
p_aXT[sk:2]
canClass
[G] $dFunctor_aY6 {0}:: Functor
(Op p_aXT[sk:2]) (Nat p_aXT[sk:2] (->)) p_aXT[sk:2]
Functor fsk_aY9[fsk] (Nat p_aXT[sk:2] (->)) p_aXT[sk:2]
ContinueWith [G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk] (Nat p_aXT[sk:2] (->)) p_aXT[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk] (Nat p_aXT[sk:2] (->)) p_aXT[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk] (Nat p_aXT[sk:2] (->)) p_aXT[sk:2] (CDictCan)
doTopReact
[G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk] (Nat p_aXT[sk:2] (->)) p_aXT[sk:2] (CDictCan)
try_fundeps
[G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk] (Nat p_aXT[sk:2] (->)) p_aXT[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk]
(Nat p_aXT[sk:2] (->))
p_aXT[sk:2] (CDictCan)
addInertCan }
Step 2[l:2,d:0] Kept as inert:
[G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk] (Nat p_aXT[sk:2] (->)) p_aXT[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk] (Nat p_aXT[sk:2] (->)) p_aXT[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aYa {0}:: (Op p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2] -> i_aXS[sk:2] -> *)) (CFunEqCan)
inerts = {Dictionaries = [G] $dCategory_aXU {0}:: Category
p_aXT[sk:2] (CDictCan)
[G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk]
(Nat p_aXT[sk:2] (->))
p_aXT[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aY7 {0}:: Category
(Op p_aXT[sk:2]) (CDictCan(psc))
[G] $dCategory_aY8 {0}:: Category
(Nat
p_aXT[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] cobox_aYa {0}:: (Op p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2] -> i_aXS[sk:2] -> *)) (CFunEqCan)
flatten_many {
i_aXS[sk:2]
i_aXS[sk:2]
p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
flatten }
i_aXS[sk:2]
i_aXS[sk:2]
p_aXT[sk:2]
extendFlatCache
Op [i_aXS[sk:2], i_aXS[sk:2], p_aXT[sk:2]]
[G]
fsk_aY9[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aYa {0}:: (Op p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2] -> i_aXS[sk:2] -> *)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aYa {0}:: (Op p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2] -> i_aXS[sk:2] -> *)) (CFunEqCan)
doTopReact
[G] cobox_aYa {0}:: (Op p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2] -> i_aXS[sk:2] -> *)) (CFunEqCan)
matchFamTcM
Matching: Op p_aXT[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aYa {0}:: (Op
p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2]
-> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2]
-> i_aXS[sk:2]
-> *)) (CFunEqCan)
addInertCan }
Step 3[l:2,d:0] Kept as inert:
[G] cobox_aYa {0}:: (Op p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2] -> i_aXS[sk:2] -> *))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aYa {0}:: (Op p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2] -> i_aXS[sk:2] -> *)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aY7 {0}:: Category
(Op p_aXT[sk:2]) (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aYa {0}:: (Op
p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2]
-> i_aXS[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aXU {0}:: Category
p_aXT[sk:2] (CDictCan)
[G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk]
(Nat p_aXT[sk:2] (->))
p_aXT[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aY8 {0}:: Category
(Nat
p_aXT[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dCategory_aY7 {0}:: Category
(Op p_aXT[sk:2]) (CDictCan(psc))
flatten_many {
i_aXS[sk:2]
Op p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
matchFamTcM
Matching: Op p_aXT[sk:2]
Match failed
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
flatten/flat-cache hit
Op [i_aXS[sk:2], i_aXS[sk:2], p_aXT[sk:2]]
fsk_aY9[fsk]
Unfilled tyvar fsk_aY9[fsk]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
flatten }
i_aXS[sk:2]
fsk_aY9[fsk]
addTcEvBind
aY4
[G] $dCategory_aYb
= $dCategory_aY7 `cast` (Sub
(Sym (Category <i_aXS[sk:2]>_N (Sym cobox))_N))
canClass
[G] $dCategory_aY7 {0}:: Category (Op p_aXT[sk:2])
Category fsk_aY9[fsk]
ContinueWith [G] $dCategory_aYb {0}:: Category fsk_aY9[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aYb {0}:: Category
fsk_aY9[fsk] (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aYb {0}:: Category
fsk_aY9[fsk] (CDictCan(psc))
doTopReact
[G] $dCategory_aYb {0}:: Category fsk_aY9[fsk] (CDictCan(psc))
try_fundeps
[G] $dCategory_aYb {0}:: Category fsk_aY9[fsk] (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aYb {0}:: Category
fsk_aY9[fsk] (CDictCan(psc))
addInertCan }
Step 4[l:2,d:0] Kept as inert:
[G] $dCategory_aYb {0}:: Category fsk_aY9[fsk]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aYb {0}:: Category
fsk_aY9[fsk] (CDictCan(psc))
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->)) (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aYa {0}:: (Op
p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2]
-> i_aXS[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk]
(Nat p_aXT[sk:2] (->))
p_aXT[sk:2] (CDictCan)
[G] $dCategory_aXU {0}:: Category p_aXT[sk:2] (CDictCan)
[G] $dCategory_aYb {0}:: Category fsk_aY9[fsk] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aXS[sk:2] -> *
Nat p_aXT[sk:2] (->)
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
flatten }
i_aXS[sk:2] -> *
Nat p_aXT[sk:2] (->)
canClass
[G] $dCategory_aY8 {0}:: Category (Nat p_aXT[sk:2] (->))
Category (Nat p_aXT[sk:2] (->))
ContinueWith [G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->)) (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->)) (CDictCan(psc))
doTopReact
[G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->)) (CDictCan(psc))
try_fundeps
[G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->)) (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aY8 {0}:: Category
(Nat
p_aXT[sk:2]
(->)) (CDictCan(psc))
addInertCan }
Step 5[l:2,d:0] Kept as inert:
[G] $dCategory_aY8 {0}:: Category (Nat p_aXT[sk:2] (->))
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->)) (CDictCan(psc))
End solveSimpleGivens }
solveWanteds {
WC {wc_simple =
[WD] $dCategory_aY0 {0}:: Category p_aXZ[tau:2] (CNonCanonical)
[WD] hole{aY3} {0}:: (Ob p_aXZ[tau:2] a_aY1[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aXT[sk:2] a_aXW[sk:2] :: Constraint) (CNonCanonical)}
solveSimpleWanteds {
{[WD] $dCategory_aY0 {0}:: Category p_aXZ[tau:2] (CNonCanonical),
[WD] hole{aY3} {0}:: (Ob p_aXZ[tau:2] a_aY1[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aXT[sk:2] a_aXW[sk:2] :: Constraint) (CNonCanonical)}
-----------------------------
Start solver pipeline {
work item = [WD] hole{aY3} {0}:: (Ob
p_aXZ[tau:2] a_aY1[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aXT[sk:2] a_aXW[sk:2] :: Constraint) (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aYa {0}:: (Op
p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2]
-> i_aXS[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk]
(Nat p_aXT[sk:2] (->))
p_aXT[sk:2] (CDictCan)
[G] $dCategory_aXU {0}:: Category p_aXT[sk:2] (CDictCan)
[G] $dCategory_aYb {0}:: Category fsk_aY9[fsk] (CDictCan(psc))
[G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [WD] $dCategory_aY0 {0}:: Category
p_aXZ[tau:2] (CNonCanonical)}
runStage canonicalization {
workitem = [WD] hole{aY3} {0}:: (Ob
p_aXZ[tau:2] a_aY1[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aXT[sk:2] a_aXW[sk:2] :: Constraint) (CNonCanonical)
canonicalize (non-canonical)
[WD] hole{aY3} {0}:: (Ob p_aXZ[tau:2] a_aY1[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aXT[sk:2] a_aXW[sk:2] :: Constraint) (CNonCanonical)
canEvNC:eq
Ob p_aXZ[tau:2] a_aY1[tau:2]
Ob p_aXT[sk:2] a_aXW[sk:2]
Filling coercion hole aY3 := <Ob p_aXT[sk:2] a_aXW[sk:2]>_N
end stage canonicalization }
Step 6[l:2,d:0] Solved by reflexivity:
[WD] hole{aY3} {0}:: (Ob p_aXZ[tau:2] a_aY1[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aXT[sk:2] a_aXW[sk:2] :: Constraint)
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [WD] $dCategory_aY0 {0}:: Category
p_aXZ[tau:2] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aYa {0}:: (Op
p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2]
-> i_aXS[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk]
(Nat p_aXT[sk:2] (->))
p_aXT[sk:2] (CDictCan)
[G] $dCategory_aXU {0}:: Category p_aXT[sk:2] (CDictCan)
[G] $dCategory_aYb {0}:: Category fsk_aY9[fsk] (CDictCan(psc))
[G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [WD] $dCategory_aY0 {0}:: Category
p_aXZ[tau:2] (CNonCanonical)
canonicalize (non-canonical)
[WD] $dCategory_aY0 {0}:: Category p_aXZ[tau:2] (CNonCanonical)
canEvNC:cls Category [i_aXY[tau:2], p_aXZ[tau:2]]
flatten_many {
i_aXY[tau:2]
p_aXZ[tau:2]
Following filled tyvar i_aXY[tau:2] = i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
Following filled tyvar p_aXZ[tau:2] = p_aXT[sk:2]
Unfilled tyvar p_aXT[sk:2]
Unfilled tyvar i_aXS[sk:2]
Unfilled tyvar i_aXS[sk:2]
flatten }
i_aXS[sk:2]
p_aXT[sk:2]
canClass
[WD] $dCategory_aY0 {0}:: Category p_aXZ[tau:2]
Category p_aXT[sk:2]
ContinueWith [WD] $dCategory_aY0 {0}:: Category p_aXT[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] $dCategory_aY0 {0}:: Category
p_aXT[sk:2] (CDictCan(psc))
addTcEvBind
aY4
[W] $dCategory_aY0 = $dCategory_aXU
end stage interact with inerts }
Step 7[l:2,d:0] Dict equal (keep):
[WD] $dCategory_aY0 {0}:: Category p_aXT[sk:2]
End solver pipeline (discharged) }
getUnsolvedInerts
tv eqs = {}
fun eqs = {}
insols = {}
others = {}
implics = {}
Unflattening
{Funeqs =
Tv eqs =}
Unflattening 1 {}
Unflattening 2 {}
Unflattening 3 {}
Unflattening done {}
zonkSimples done: {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {[G] $dFunctor_aY6 = sc(($dCategory_aXU, 0)),
[G] $dCategory_aY7 = sc(($dFunctor_aY6, 0)),
[G] $dCategory_aY8 = sc(($dFunctor_aY6, 1)),
[G] cobox_aYa = CO <Op p_aXT[sk:2]>_N,
[G] $dCategory_aYb
= $dCategory_aY7 `cast` (Sub
(Sym (Category <i_aXS[sk:2]>_N (Sym cobox))_N)),
[W] $dCategory_aY0 = $dCategory_aXU}
getNoGivenEqs
False
{Type-function equalities = [G] cobox_aYa {0}:: (Op
p_aXT[sk:2] :: (i_aXS[sk:2]
-> i_aXS[sk:2] -> *))
GHC.Prim.~#
(fsk_aY9[fsk] :: (i_aXS[sk:2]
-> i_aXS[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aY6 {0}:: Functor
fsk_aY9[fsk]
(Nat p_aXT[sk:2] (->))
p_aXT[sk:2] (CDictCan)
[G] $dCategory_aXU {0}:: Category p_aXT[sk:2] (CDictCan)
[G] $dCategory_aYb {0}:: Category fsk_aY9[fsk] (CDictCan(psc))
[G] $dCategory_aY8 {0}:: Category
(Nat p_aXT[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
{}
floatEqualities
Skols = [i_aXS[sk:2], p_aXT[sk:2], a_aXW[sk:2], b_aXX[sk:2]]
Simples = {}
Floated eqs = {}
solveImplication 2
{}
WC {}
setImplicationStatus 2
[$dCategory_aXU]
([aY6 :-> [G] $dFunctor_aY6 = sc(($dCategory_aXU, 0)),
aY7 :-> [G] $dCategory_aY7 = sc(($dFunctor_aY6, 0)),
aY8 :-> [G] $dCategory_aY8 = sc(($dFunctor_aY6, 1)),
aYa :-> [G] cobox_aYa = CO <Op p_aXT[sk:2]>_N,
aYb :-> [G] $dCategory_aYb
= $dCategory_aY7 `cast` (Sub
(Sym (Category <i_aXS[sk:2]>_N (Sym cobox))_N)),
aY0 :-> [W] $dCategory_aY0 = $dCategory_aXU],
[])
[aXU :-> $dCategory_aXU]
solveImplication end }
no_given_eqs = True
floated_eqs = {}
res_implic = Nothing
implication evbinds = {[G] $dFunctor_aY6 = sc(($dCategory_aXU, 0)),
[G] $dCategory_aY7 = sc(($dFunctor_aY6, 0)),
[G] $dCategory_aY8 = sc(($dFunctor_aY6, 1)),
[G] cobox_aYa = CO <Op p_aXT[sk:2]>_N,
[G] $dCategory_aYb
= $dCategory_aY7 `cast` (Sub
(Sym
(Category <i_aXS[sk:2]>_N (Sym cobox))_N)),
[W] $dCategory_aY0 = $dCategory_aXU}
implication tvcs = []
solveNestedImplications end }
all floated_eqs = {}
unsolved_implics = {Nothing}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
Constraint solver steps = 7
End simplifyAmbiguityCheck }
reportUnsolved(ambig) {
newTcEvBinds unique = aYc
reportUnsolved(ambig) }
Done ambiguity check for
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
checkValidType done
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a) :: *
checkValidType
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a) :: *
check_type
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
True
check_valid_theta [Category p]
check_type
forall (a :: i_aL2[sk:1]) (b :: i_aL2[sk:1]).
(Ob p_aL3[sk:1] :: (i_aL2[sk:1] -> Constraint))
~
(Vacuous p_aL3[sk:1] :: (i_aL2[sk:1] -> Constraint)) =>
p_aL3[sk:1] a b -> Dict (Ob p_aL3[sk:1] a)
True
check_valid_theta
[(Ob p_aL3[sk:1] :: (i_aL2[sk:1] -> Constraint))
~
(Vacuous p_aL3[sk:1] :: (i_aL2[sk:1] -> Constraint))]
Ambiguity check for
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
tcSubType_NC
the type signature for ‘source’
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
tc_sub_tc_type (general case)
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
ty_expected = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
tcSkolemise
tcSkolemise
1
expected_ty forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
inst tyvars [i_aYe[sk:2], p_aYf[sk:2], a_aYi[sk:2], b_aYj[sk:2]]
given [$dCategory_aYg, $d~_aYk]
inst type p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
tc_sub_type_ds
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
ty_expected = p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
instCallConstraints [$dCategory_aYn]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
type forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
theta [Category p]
leave_bndrs []
with [i_aYl[tau:2], p_aYm[tau:2]]
theta: [Category p_aYm[tau:2]]
instCallConstraints [$d~_aYq]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
type forall (a :: i_aYl[tau:2]) (b :: i_aYl[tau:2]).
(Ob p_aYm[tau:2] :: (i_aYl[tau:2] -> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2] -> Constraint)) =>
p_aYm[tau:2] a b -> Dict (Ob p_aYm[tau:2] a)
theta [(Ob p_aYm[tau:2] :: (i_aYl[tau:2] -> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2] -> Constraint))]
leave_bndrs []
with [a_aYo[tau:2], b_aYp[tau:2]]
theta: [(Ob p_aYm[tau:2] :: (i_aYl[tau:2] -> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2] -> Constraint))]
tc_sub_type_ds
ty_actual = p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
-> Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
ty_expected = p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
tc_sub_type_ds
ty_actual = Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
ty_expected = Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
deeply_instantiate final subst
origin: arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
type: Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
new type: Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
subst: [TCvSubst
In scope: InScope {i_aYl p_aYm a_aYo}
Type env: []
Co env: []]
u_tys
tclvl 2
Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
~
Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
arising from a type equality p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
-> Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
~
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
u_tys
tclvl 2
Ob p_aYm[tau:2] a_aYo[tau:2] ~ Ob p_aYf[sk:2] a_aYi[sk:2]
arising from a type equality p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
-> Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
~
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
New coercion hole: aYr
utype_defer
U(hole:{aYr}, Ob p_aYm[tau:2] a_aYo[tau:2], Ob
p_aYf[sk:2] a_aYi[sk:2])_N
Ob p_aYm[tau:2] a_aYo[tau:2]
Ob p_aYf[sk:2] a_aYi[sk:2]
arising from a type equality p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
-> Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
~
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
In the ambiguity check for ‘source’
To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
When checking the class method:
source :: forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p a)
In the class declaration for ‘Category’
u_tys yields coercion:
U(hole:{aYr}, Ob p_aYm[tau:2] a_aYo[tau:2], Ob
p_aYf[sk:2] a_aYi[sk:2])_N
u_tys yields coercion: (Dict {aYr})_N
tc_sub_tc_type (general case)
ty_actual = p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
ty_expected = p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
tcSkolemise
tcSkolemise
2
expected_ty p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
inst tyvars []
given []
inst type p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
tc_sub_type_ds
ty_actual = p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
ty_expected = p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
deeply_instantiate final subst
origin: arising from a type expected by the context:
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
type: p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
new type: p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
subst: [TCvSubst
In scope: InScope {i_aYe p_aYf a_aYi b_aYj}
Type env: []
Co env: []]
u_tys
tclvl 2
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
~
p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
arising from a type equality p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
-> Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
~
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
u_tys
tclvl 2
p_aYf[sk:2] a_aYi[sk:2] ~ p_aYm[tau:2] a_aYo[tau:2]
arising from a type equality p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
-> Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
~
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
u_tys
tclvl 2
p_aYf[sk:2] ~ p_aYm[tau:2]
arising from a type equality p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
-> Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
~
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
u_tys
tclvl 2
i_aYe[sk:2] -> i_aYe[sk:2] -> * ~ i_aYl[tau:2] -> i_aYl[tau:2] -> *
arising from a kind equality arising from
p_aYm[tau:2] ~ p_aYf[sk:2]
u_tys
tclvl 2
i_aYe[sk:2] ~ i_aYl[tau:2]
arising from a kind equality arising from
p_aYm[tau:2] ~ p_aYf[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
i_aYl[tau:2] ~ i_aYe[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aYl[tau:2] ~ i_aYe[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aYl[tau:2] := i_aYe[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
i_aYe[sk:2] -> * ~ i_aYl[tau:2] -> *
arising from a kind equality arising from
p_aYm[tau:2] ~ p_aYf[sk:2]
u_tys
tclvl 2
i_aYe[sk:2] ~ i_aYl[tau:2]
arising from a kind equality arising from
p_aYm[tau:2] ~ p_aYf[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
p_aYm[tau:2] ~ p_aYf[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar p_aYm[tau:2] := p_aYf[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
a_aYi[sk:2] ~ a_aYo[tau:2]
arising from a type equality p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
-> Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
~
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
u_tys
tclvl 2
i_aYe[sk:2] ~ i_aYe[sk:2]
arising from a kind equality arising from
a_aYo[tau:2] ~ a_aYi[sk:2]
u_tys yields no coercion
writeMetaTyVar a_aYo[tau:2] := a_aYi[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
b_aYj[sk:2] ~ b_aYp[tau:2]
arising from a type equality p_aYm[tau:2] a_aYo[tau:2] b_aYp[tau:2]
-> Dict (Ob p_aYm[tau:2] a_aYo[tau:2])
~
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2])
u_tys
tclvl 2
i_aYe[sk:2] ~ i_aYe[sk:2]
arising from a kind equality arising from
b_aYp[tau:2] ~ b_aYj[sk:2]
u_tys yields no coercion
writeMetaTyVar b_aYp[tau:2] := b_aYj[sk:2]
u_tys yields no coercion
u_tys yields no coercion
newTcEvBinds unique = aYs
simplifyAmbiguityCheck {
type = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
wanted = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aYe[sk:2]
(p_aYf[sk:2] :: i_aYe[sk:2] -> i_aYe[sk:2] -> *)
(a_aYi[sk:2] :: i_aYe[sk:2])
(b_aYj[sk:2] :: i_aYe[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dCategory_aYg :: Category p_aYf[sk:2]
$d~_aYk :: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
Wanted =
WC {wc_simple =
[WD] $dCategory_aYn {0}:: Category p_aYm[tau:2] (CNonCanonical)
[WD] $d~_aYq {0}:: (Ob p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint)) (CNonCanonical)
[WD] hole{aYr} {0}:: (Ob p_aYm[tau:2] a_aYo[tau:2] :: Constraint)
GHC.Prim.~#
(Ob
p_aYf[sk:2]
a_aYi[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aYs>
Needed = []
the type signature for:
source :: (Category p_aYf[sk:2],
(Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))) =>
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2]) }}
newTcEvBinds unique = aYt
solveWanteds {
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aYe[sk:2]
(p_aYf[sk:2] :: i_aYe[sk:2] -> i_aYe[sk:2] -> *)
(a_aYi[sk:2] :: i_aYe[sk:2])
(b_aYj[sk:2] :: i_aYe[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dCategory_aYg :: Category p_aYf[sk:2]
$d~_aYk :: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
Wanted =
WC {wc_simple =
[WD] $dCategory_aYn {0}:: Category p_aYm[tau:2] (CNonCanonical)
[WD] $d~_aYq {0}:: (Ob p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint)) (CNonCanonical)
[WD] hole{aYr} {0}:: (Ob p_aYm[tau:2] a_aYo[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYf[sk:2] a_aYi[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aYs>
Needed = []
the type signature for:
source :: (Category p_aYf[sk:2],
(Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))) =>
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2]) }}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveNestedImplications starting {
solveImplication {
Implic {
TcLevel = 2
Skolems = i_aYe[sk:2]
(p_aYf[sk:2] :: i_aYe[sk:2] -> i_aYe[sk:2] -> *)
(a_aYi[sk:2] :: i_aYe[sk:2])
(b_aYj[sk:2] :: i_aYe[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dCategory_aYg :: Category p_aYf[sk:2]
$d~_aYk :: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
Wanted =
WC {wc_simple =
[WD] $dCategory_aYn {0}:: Category p_aYm[tau:2] (CNonCanonical)
[WD] $d~_aYq {0}:: (Ob p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint)) (CNonCanonical)
[WD] hole{aYr} {0}:: (Ob p_aYm[tau:2] a_aYo[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYf[sk:2] a_aYi[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aYs>
Needed = []
the type signature for:
source :: (Category p_aYf[sk:2],
(Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))) =>
p_aYf[sk:2] a_aYi[sk:2] b_aYj[sk:2]
-> Dict (Ob p_aYf[sk:2] a_aYi[sk:2]) }
Inerts {Unsolved goals = 0}
solveSimpleGivens {
[[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CNonCanonical),
[G] $d~_aYk {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CNonCanonical)]
-----------------------------
Start solver pipeline {
work item = [G] $d~_aYk {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CNonCanonical)
inerts = {Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aYg {0}:: Category
p_aYf[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $d~_aYk {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CNonCanonical)
canonicalize (non-canonical)
[G] $d~_aYk {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CNonCanonical)
canEvNC:cls
~ [i_aYe[sk:2] -> Constraint, Ob p_aYf[sk:2], Vacuous p_aYf[sk:2]]
addTcEvBind
aYs
[G] $d~~_aYu = sc(($d~_aYk, 0))
mk_superclasses_of
~~ [i_aYe[sk:2] -> Constraint, i_aYe[sk:2] -> Constraint,
Ob p_aYf[sk:2], Vacuous p_aYf[sk:2]]
False
[31e :-> ~]
addTcEvBind
aYs
[G] cobox_aYv = sc(($d~~_aYu, 0))
Emitting fresh work
[G] $d~~_aYu {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
[G] cobox_aYv {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CNonCanonical)
flatten_many {
i_aYe[sk:2] -> Constraint
Ob p_aYf[sk:2]
Vacuous p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
matchFamTcM
Matching: Ob p_aYf[sk:2]
Match failed
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
matchFamTcM
Matching: Ob p_aYf[sk:2]
Match failed
addTcEvBind
aYs
[G] cobox_aYx = CO <Ob p_aYf[sk:2]>_N
extendFlatCache
Ob [i_aYe[sk:2], p_aYf[sk:2]]
[G]
fsk_aYw[fsk]
flatten/flat-cache miss
Ob [i_aYe[sk:2], p_aYf[sk:2]]
fsk_aYw[fsk]
[G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2] -> Constraint
fsk_aYw[fsk]
Vacuous p_aYf[sk:2]
canClass
[G] $d~_aYk {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
ContinueWith [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
doTopReact
[G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
try_fundeps
[G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
addInertCan }
Step 1[l:2,d:0] Kept as inert:
[G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $d~~_aYu {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
inerts = {Dictionaries = [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Funeqs = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aYv {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CNonCanonical)
Non-eqs = [G] $dCategory_aYg {0}:: Category
p_aYf[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $d~~_aYu {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
flatten_many {
i_aYe[sk:2] -> Constraint
i_aYe[sk:2] -> Constraint
Ob p_aYf[sk:2]
Vacuous p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
matchFamTcM
Matching: Ob p_aYf[sk:2]
Match failed
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten/flat-cache hit
Ob [i_aYe[sk:2], p_aYf[sk:2]]
fsk_aYw[fsk]
Unfilled tyvar fsk_aYw[fsk]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2] -> Constraint
i_aYe[sk:2] -> Constraint
fsk_aYw[fsk]
Vacuous p_aYf[sk:2]
canClass
[G] $d~~_aYu {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
ContinueWith [G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
doTopReact
[G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
try_fundeps
[G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
addInertCan }
Step 2[l:2,d:0] Kept as inert:
[G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
inerts = {Dictionaries = [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Funeqs = [G] cobox_aYv {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CNonCanonical)
Non-eqs = [G] $dCategory_aYg {0}:: Category
p_aYf[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
flatten_many {
i_aYe[sk:2]
p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2]
p_aYf[sk:2]
extendFlatCache
Ob [i_aYe[sk:2], p_aYf[sk:2]]
[G]
fsk_aYw[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
doTopReact
[G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
matchFamTcM
Matching: Ob p_aYf[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
addInertCan }
Step 3[l:2,d:0] Kept as inert:
[G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aYv {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aYg {0}:: Category
p_aYf[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] cobox_aYv {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CNonCanonical)
canonicalize (non-canonical)
[G] cobox_aYv {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CNonCanonical)
canEvNC:eq
Ob p_aYf[sk:2]
Vacuous p_aYf[sk:2]
can_eq_nc
False
[G] cobox_aYv {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
nominal equality
Ob p_aYf[sk:2]
Ob p_aYf[sk:2]
Vacuous p_aYf[sk:2]
Vacuous p_aYf[sk:2]
flatten { Ob p_aYf[sk:2]
matchFamTcM
Matching: Ob p_aYf[sk:2]
Match failed
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten/flat-cache hit
Ob [i_aYe[sk:2], p_aYf[sk:2]]
fsk_aYw[fsk]
Unfilled tyvar fsk_aYw[fsk]
Unfilled tyvar i_aYe[sk:2]
flatten } fsk_aYw[fsk]
flatten { Vacuous p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten } Vacuous p_aYf[sk:2]
addTcEvBind
aYs
[G] cobox_aYy = CO Sym cobox_aYx ; cobox_aYv
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CTyEqCan)
Can't solve tyvar equality
LHS: fsk_aYw[fsk] :: i_aYe[sk:2] -> Constraint
RHS: Vacuous p_aYf[sk:2] :: i_aYe[sk:2] -> Constraint
addInertEq {
Adding new inert equality: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Kick out, tv = fsk_aYw[fsk]
n-kicked = 3
kicked_out = WL {Funeqs = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
Non-eqs = [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)}
Residual inerts = {Type-function equalities =
Unsolved goals = 0}
addInertEq }
end stage interact with inerts }
Step 4[l:2,d:1] Kept as inert:
[G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
inerts = {Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities =
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
flatten_many {
i_aYe[sk:2]
p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2]
p_aYf[sk:2]
extendFlatCache
Ob [i_aYe[sk:2], p_aYf[sk:2]]
[G]
fsk_aYw[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
doTopReact
[G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
matchFamTcM
Matching: Ob p_aYf[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
addInertCan }
Step 5[l:2,d:0] Kept as inert:
[G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aYx {0}:: (Ob p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
inerts = {Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
flatten_many {
i_aYe[sk:2] -> Constraint
fsk_aYw[fsk]
Vacuous p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar fsk_aYw[fsk]
Following inert tyvar
FM_FlattenAll fsk_aYw[fsk] = Vacuous p_aYf[sk:2]
[G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2] -> Constraint
Vacuous p_aYf[sk:2]
Vacuous p_aYf[sk:2]
addTcEvBind
aYs
[G] $d~_aYz
= $d~_aYk `cast` (Sub
(Sym
((~)
<i_aYe[sk:2] -> Constraint>_N
(Sym cobox)
<Vacuous p_aYf[sk:2]>_N)_N))
canClass
[G] $d~_aYk {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
ContinueWith [G] $d~_aYz {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
doTopReact
[G] $d~_aYz {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
try_fundeps
[G] $d~_aYz {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
addInertCan }
Step 6[l:2,d:0] Kept as inert:
[G] $d~_aYz {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] $d~_aYz {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
inerts = {Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aYg {0}:: Category
p_aYf[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
flatten_many {
i_aYe[sk:2] -> Constraint
i_aYe[sk:2] -> Constraint
fsk_aYw[fsk]
Vacuous p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar fsk_aYw[fsk]
Following inert tyvar
FM_FlattenAll fsk_aYw[fsk] = Vacuous p_aYf[sk:2]
[G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2] -> Constraint
i_aYe[sk:2] -> Constraint
Vacuous p_aYf[sk:2]
Vacuous p_aYf[sk:2]
addTcEvBind
aYs
[G] $d~~_aYA
= $d~~_aYu `cast` (Sub
(Sym
((~~)
<i_aYe[sk:2] -> Constraint>_N
<i_aYe[sk:2] -> Constraint>_N
(Sym cobox)
<Vacuous p_aYf[sk:2]>_N)_N))
canClass
[G] $d~~_aYu {0}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
ContinueWith [G] $d~~_aYA {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $d~~_aYA {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $d~~_aYA {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
doTopReact
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
try_fundeps
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $d~~_aYA {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
addInertCan }
Step 7[l:2,d:0] Kept as inert:
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] $d~~_aYA {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aYg {0}:: Category
p_aYf[sk:2] (CNonCanonical)
inerts = {Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dCategory_aYg {0}:: Category
p_aYf[sk:2] (CNonCanonical)
canonicalize (non-canonical)
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CNonCanonical)
canEvNC:cls Category [i_aYe[sk:2], p_aYf[sk:2]]
addTcEvBind
aYs
[G] $dFunctor_aYB = sc(($dCategory_aYg, 0))
mk_superclasses_of
Functor [i_aYe[sk:2], i_aYe[sk:2] -> *, Op p_aYf[sk:2],
Nat p_aYf[sk:2] (->), p_aYf[sk:2]]
False
[rKp :-> Category]
addTcEvBind
aYs
[G] $dCategory_aYC = sc(($dFunctor_aYB, 0))
addTcEvBind
aYs
[G] $dCategory_aYD = sc(($dFunctor_aYB, 1))
mk_superclasses_of: loop Category [i_aYe[sk:2], Op p_aYf[sk:2]]
mk_superclasses_of: loop
Category [i_aYe[sk:2] -> *, Nat p_aYf[sk:2] (->)]
Emitting fresh work
[G] $dFunctor_aYB {0}:: Functor
(Op p_aYf[sk:2]) (Nat p_aYf[sk:2] (->)) p_aYf[sk:2] (CDictCan)
[G] $dCategory_aYC {0}:: Category (Op p_aYf[sk:2]) (CDictCan(psc))
[G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aYe[sk:2]
p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2]
p_aYf[sk:2]
canClass
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2]
Category p_aYf[sk:2]
ContinueWith [G] $dCategory_aYg {0}:: Category p_aYf[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aYg {0}:: Category
p_aYf[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aYg {0}:: Category
p_aYf[sk:2] (CDictCan)
doTopReact [G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CDictCan)
try_fundeps
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aYg {0}:: Category
p_aYf[sk:2] (CDictCan)
addInertCan }
Step 8[l:2,d:0] Kept as inert:
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aYg {0}:: Category
p_aYf[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aYB {0}:: Functor
(Op p_aYf[sk:2])
(Nat p_aYf[sk:2] (->))
p_aYf[sk:2] (CDictCan)
inerts = {Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aYC {0}:: Category
(Op p_aYf[sk:2]) (CDictCan(psc))
[G] $dCategory_aYD {0}:: Category
(Nat
p_aYf[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dFunctor_aYB {0}:: Functor
(Op p_aYf[sk:2])
(Nat p_aYf[sk:2] (->))
p_aYf[sk:2] (CDictCan)
flatten_many {
i_aYe[sk:2]
i_aYe[sk:2] -> *
Op p_aYf[sk:2]
Nat p_aYf[sk:2] (->)
p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
matchFamTcM
Matching: Op p_aYf[sk:2]
Match failed
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
matchFamTcM
Matching: Op p_aYf[sk:2]
Match failed
addTcEvBind
aYs
[G] cobox_aYF = CO <Op p_aYf[sk:2]>_N
extendFlatCache
Op [i_aYe[sk:2], i_aYe[sk:2], p_aYf[sk:2]]
[G]
fsk_aYE[fsk]
flatten/flat-cache miss
Op [i_aYe[sk:2], i_aYe[sk:2], p_aYf[sk:2]]
fsk_aYE[fsk]
[G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2] -> i_aYe[sk:2] -> *))
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2]
i_aYe[sk:2] -> *
fsk_aYE[fsk]
Nat p_aYf[sk:2] (->)
p_aYf[sk:2]
canClass
[G] $dFunctor_aYB {0}:: Functor
(Op p_aYf[sk:2]) (Nat p_aYf[sk:2] (->)) p_aYf[sk:2]
Functor fsk_aYE[fsk] (Nat p_aYf[sk:2] (->)) p_aYf[sk:2]
ContinueWith [G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk] (Nat p_aYf[sk:2] (->)) p_aYf[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk] (Nat p_aYf[sk:2] (->)) p_aYf[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk] (Nat p_aYf[sk:2] (->)) p_aYf[sk:2] (CDictCan)
doTopReact
[G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk] (Nat p_aYf[sk:2] (->)) p_aYf[sk:2] (CDictCan)
try_fundeps
[G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk] (Nat p_aYf[sk:2] (->)) p_aYf[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk]
(Nat p_aYf[sk:2] (->))
p_aYf[sk:2] (CDictCan)
addInertCan }
Step 9[l:2,d:0] Kept as inert:
[G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk] (Nat p_aYf[sk:2] (->)) p_aYf[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk] (Nat p_aYf[sk:2] (->)) p_aYf[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2] -> i_aYe[sk:2] -> *)) (CFunEqCan)
inerts = {Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CDictCan)
[G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk]
(Nat p_aYf[sk:2] (->))
p_aYf[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aYC {0}:: Category
(Op p_aYf[sk:2]) (CDictCan(psc))
[G] $dCategory_aYD {0}:: Category
(Nat
p_aYf[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2] -> i_aYe[sk:2] -> *)) (CFunEqCan)
flatten_many {
i_aYe[sk:2]
i_aYe[sk:2]
p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2]
i_aYe[sk:2]
p_aYf[sk:2]
extendFlatCache
Op [i_aYe[sk:2], i_aYe[sk:2], p_aYf[sk:2]]
[G]
fsk_aYE[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2] -> i_aYe[sk:2] -> *)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2] -> i_aYe[sk:2] -> *)) (CFunEqCan)
doTopReact
[G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2] -> i_aYe[sk:2] -> *)) (CFunEqCan)
matchFamTcM
Matching: Op p_aYf[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aYF {0}:: (Op
p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2]
-> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2]
-> i_aYe[sk:2]
-> *)) (CFunEqCan)
addInertCan }
Step 10[l:2,d:0] Kept as inert:
[G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2] -> i_aYe[sk:2] -> *))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2] -> i_aYe[sk:2] -> *)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aYC {0}:: Category
(Op p_aYf[sk:2]) (CDictCan(psc))
inerts = {Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2]
-> i_aYe[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CDictCan)
[G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk]
(Nat p_aYf[sk:2] (->))
p_aYf[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aYD {0}:: Category
(Nat
p_aYf[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dCategory_aYC {0}:: Category
(Op p_aYf[sk:2]) (CDictCan(psc))
flatten_many {
i_aYe[sk:2]
Op p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
matchFamTcM
Matching: Op p_aYf[sk:2]
Match failed
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten/flat-cache hit
Op [i_aYe[sk:2], i_aYe[sk:2], p_aYf[sk:2]]
fsk_aYE[fsk]
Unfilled tyvar fsk_aYE[fsk]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2]
fsk_aYE[fsk]
addTcEvBind
aYs
[G] $dCategory_aYG
= $dCategory_aYC `cast` (Sub
(Sym (Category <i_aYe[sk:2]>_N (Sym cobox))_N))
canClass
[G] $dCategory_aYC {0}:: Category (Op p_aYf[sk:2])
Category fsk_aYE[fsk]
ContinueWith [G] $dCategory_aYG {0}:: Category fsk_aYE[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aYG {0}:: Category
fsk_aYE[fsk] (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aYG {0}:: Category
fsk_aYE[fsk] (CDictCan(psc))
doTopReact
[G] $dCategory_aYG {0}:: Category fsk_aYE[fsk] (CDictCan(psc))
try_fundeps
[G] $dCategory_aYG {0}:: Category fsk_aYE[fsk] (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aYG {0}:: Category
fsk_aYE[fsk] (CDictCan(psc))
addInertCan }
Step 11[l:2,d:0] Kept as inert:
[G] $dCategory_aYG {0}:: Category fsk_aYE[fsk]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aYG {0}:: Category
fsk_aYE[fsk] (CDictCan(psc))
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
inerts = {Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2]
-> i_aYe[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk]
(Nat p_aYf[sk:2] (->))
p_aYf[sk:2] (CDictCan)
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CDictCan)
[G] $dCategory_aYG {0}:: Category fsk_aYE[fsk] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aYe[sk:2] -> *
Nat p_aYf[sk:2] (->)
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2] -> *
Nat p_aYf[sk:2] (->)
canClass
[G] $dCategory_aYD {0}:: Category (Nat p_aYf[sk:2] (->))
Category (Nat p_aYf[sk:2] (->))
ContinueWith [G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
doTopReact
[G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
try_fundeps
[G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aYD {0}:: Category
(Nat
p_aYf[sk:2]
(->)) (CDictCan(psc))
addInertCan }
Step 12[l:2,d:0] Kept as inert:
[G] $dCategory_aYD {0}:: Category (Nat p_aYf[sk:2] (->))
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
End solveSimpleGivens }
solveWanteds {
WC {wc_simple =
[WD] $dCategory_aYn {0}:: Category p_aYm[tau:2] (CNonCanonical)
[WD] $d~_aYq {0}:: (Ob p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint)) (CNonCanonical)
[WD] hole{aYr} {0}:: (Ob p_aYm[tau:2] a_aYo[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYf[sk:2] a_aYi[sk:2] :: Constraint) (CNonCanonical)}
solveSimpleWanteds {
{[WD] $dCategory_aYn {0}:: Category p_aYm[tau:2] (CNonCanonical),
[WD] $d~_aYq {0}:: (Ob p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint)) (CNonCanonical),
[WD] hole{aYr} {0}:: (Ob p_aYm[tau:2] a_aYo[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYf[sk:2] a_aYi[sk:2] :: Constraint) (CNonCanonical)}
-----------------------------
Start solver pipeline {
work item = [WD] $d~_aYq {0}:: (Ob p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint)) (CNonCanonical)
inerts = {Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2]
-> i_aYe[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk]
(Nat p_aYf[sk:2] (->))
p_aYf[sk:2] (CDictCan)
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CDictCan)
[G] $dCategory_aYG {0}:: Category fsk_aYE[fsk] (CDictCan(psc))
[G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Funeqs = [WD] hole{aYr} {0}:: (Ob
p_aYm[tau:2] a_aYo[tau:2] :: Constraint)
GHC.Prim.~#
(Ob
p_aYf[sk:2]
a_aYi[sk:2] :: Constraint) (CNonCanonical)
Non-eqs = [WD] $dCategory_aYn {0}:: Category
p_aYm[tau:2] (CNonCanonical)}
runStage canonicalization {
workitem = [WD] $d~_aYq {0}:: (Ob p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint)) (CNonCanonical)
canonicalize (non-canonical)
[WD] $d~_aYq {0}:: (Ob p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint)) (CNonCanonical)
canEvNC:cls
~ [i_aYl[tau:2] -> Constraint, Ob p_aYm[tau:2],
Vacuous p_aYm[tau:2]]
flatten_many {
i_aYl[tau:2] -> Constraint
Ob p_aYm[tau:2]
Vacuous p_aYm[tau:2]
Following filled tyvar i_aYl[tau:2] = i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
matchFamTcM
Matching: Ob p_aYm[tau:2]
Match failed
Following filled tyvar i_aYl[tau:2] = i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Following filled tyvar p_aYm[tau:2] = p_aYf[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten/flat-cache hit
Ob [i_aYe[sk:2], p_aYf[sk:2]]
fsk_aYw[fsk]
Unfilled tyvar fsk_aYw[fsk]
Following inert tyvar
FM_FlattenAll fsk_aYw[fsk] = Vacuous p_aYf[sk:2]
[G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Following filled tyvar i_aYl[tau:2] = i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Following filled tyvar p_aYm[tau:2] = p_aYf[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2] -> Constraint
Vacuous p_aYf[sk:2]
Vacuous p_aYf[sk:2]
newWantedEvVar/cache hit
[G] $d~_aYz {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
addTcEvBind
aYs
[W] $d~_aYq
= $d~_aYz `cast` ((~)
<i_aYe[sk:2] -> Constraint>_N
(Trans (Sym cobox) (Sym cobox))
<Vacuous p_aYf[sk:2]>_N)_R
canClass
[WD] $d~_aYq {0}:: (Ob p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2] -> Constraint))
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
Stop(Cached wanted) [WD] $d~_aYq {0}:: (Ob
p_aYm[tau:2] :: (i_aYl[tau:2] -> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2] -> Constraint))
end stage canonicalization }
Step 13[l:2,d:0] Cached wanted:
[WD] $d~_aYq {0}:: (Ob p_aYm[tau:2] :: (i_aYl[tau:2]
-> Constraint))
~
(Vacuous p_aYm[tau:2] :: (i_aYl[tau:2] -> Constraint))
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [WD] hole{aYr} {0}:: (Ob
p_aYm[tau:2] a_aYo[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYf[sk:2] a_aYi[sk:2] :: Constraint) (CNonCanonical)
inerts = {Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2]
-> i_aYe[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk]
(Nat p_aYf[sk:2] (->))
p_aYf[sk:2] (CDictCan)
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CDictCan)
[G] $dCategory_aYG {0}:: Category fsk_aYE[fsk] (CDictCan(psc))
[G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [WD] $dCategory_aYn {0}:: Category
p_aYm[tau:2] (CNonCanonical)}
runStage canonicalization {
workitem = [WD] hole{aYr} {0}:: (Ob
p_aYm[tau:2] a_aYo[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYf[sk:2] a_aYi[sk:2] :: Constraint) (CNonCanonical)
canonicalize (non-canonical)
[WD] hole{aYr} {0}:: (Ob p_aYm[tau:2] a_aYo[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYf[sk:2] a_aYi[sk:2] :: Constraint) (CNonCanonical)
canEvNC:eq
Ob p_aYm[tau:2] a_aYo[tau:2]
Ob p_aYf[sk:2] a_aYi[sk:2]
Filling coercion hole aYr := <Ob p_aYf[sk:2] a_aYi[sk:2]>_N
end stage canonicalization }
Step 14[l:2,d:0] Solved by reflexivity:
[WD] hole{aYr} {0}:: (Ob p_aYm[tau:2] a_aYo[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYf[sk:2] a_aYi[sk:2] :: Constraint)
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [WD] $dCategory_aYn {0}:: Category
p_aYm[tau:2] (CNonCanonical)
inerts = {Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2]
-> i_aYe[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint)) (CDictCan)
[G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk]
(Nat p_aYf[sk:2] (->))
p_aYf[sk:2] (CDictCan)
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CDictCan)
[G] $dCategory_aYG {0}:: Category fsk_aYE[fsk] (CDictCan(psc))
[G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [WD] $dCategory_aYn {0}:: Category
p_aYm[tau:2] (CNonCanonical)
canonicalize (non-canonical)
[WD] $dCategory_aYn {0}:: Category p_aYm[tau:2] (CNonCanonical)
canEvNC:cls Category [i_aYl[tau:2], p_aYm[tau:2]]
flatten_many {
i_aYl[tau:2]
p_aYm[tau:2]
Following filled tyvar i_aYl[tau:2] = i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
Following filled tyvar p_aYm[tau:2] = p_aYf[sk:2]
Unfilled tyvar p_aYf[sk:2]
Unfilled tyvar i_aYe[sk:2]
Unfilled tyvar i_aYe[sk:2]
flatten }
i_aYe[sk:2]
p_aYf[sk:2]
canClass
[WD] $dCategory_aYn {0}:: Category p_aYm[tau:2]
Category p_aYf[sk:2]
ContinueWith [WD] $dCategory_aYn {0}:: Category p_aYf[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] $dCategory_aYn {0}:: Category
p_aYf[sk:2] (CDictCan(psc))
addTcEvBind
aYs
[W] $dCategory_aYn = $dCategory_aYg
end stage interact with inerts }
Step 15[l:2,d:0] Dict equal (keep):
[WD] $dCategory_aYn {0}:: Category p_aYf[sk:2]
End solver pipeline (discharged) }
getUnsolvedInerts
tv eqs = {}
fun eqs = {}
insols = {}
others = {}
implics = {}
Unflattening
{Funeqs =
Tv eqs =}
Unflattening 1 {}
Unflattening 2 {}
Unflattening 3 {}
Unflattening done {}
zonkSimples done: {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {[G] $d~~_aYu = sc(($d~_aYk, 0)),
[G] cobox_aYv = sc(($d~~_aYu, 0)),
[G] cobox_aYx = CO <Ob p_aYf[sk:2]>_N,
[G] cobox_aYy = CO Sym cobox_aYx ; cobox_aYv,
[G] $d~_aYz
= $d~_aYk `cast` (Sub
(Sym
((~)
<i_aYe[sk:2] -> Constraint>_N
(Sym cobox)
<Vacuous p_aYf[sk:2]>_N)_N)),
[G] $d~~_aYA
= $d~~_aYu `cast` (Sub
(Sym
((~~)
<i_aYe[sk:2] -> Constraint>_N
<i_aYe[sk:2] -> Constraint>_N
(Sym cobox)
<Vacuous p_aYf[sk:2]>_N)_N)),
[G] $dFunctor_aYB = sc(($dCategory_aYg, 0)),
[G] $dCategory_aYC = sc(($dFunctor_aYB, 0)),
[G] $dCategory_aYD = sc(($dFunctor_aYB, 1)),
[G] cobox_aYF = CO <Op p_aYf[sk:2]>_N,
[G] $dCategory_aYG
= $dCategory_aYC `cast` (Sub
(Sym (Category <i_aYe[sk:2]>_N (Sym cobox))_N)),
[W] $d~_aYq
= $d~_aYz `cast` ((~)
<i_aYe[sk:2] -> Constraint>_N
(Trans (Sym cobox) (Sym cobox))
<Vacuous p_aYf[sk:2]>_N)_R,
[W] $dCategory_aYn = $dCategory_aYg}
getNoGivenEqs
True
{Equalities: [G] cobox_aYy {1}:: (fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aYx {0}:: (Ob
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aYw[fsk] :: (i_aYe[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aYF {0}:: (Op p_aYf[sk:2] :: (i_aYe[sk:2]
-> i_aYe[sk:2] -> *))
GHC.Prim.~#
(fsk_aYE[fsk] :: (i_aYe[sk:2]
-> i_aYe[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $d~_aYz {0}:: (Vacuous
p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint))
~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
[G] $d~~_aYA {0}:: (Vacuous p_aYf[sk:2] :: (i_aYe[sk:2]
-> Constraint))
~~
(Vacuous p_aYf[sk:2] :: (i_aYe[sk:2] -> Constraint)) (CDictCan)
[G] $dFunctor_aYB {0}:: Functor
fsk_aYE[fsk]
(Nat p_aYf[sk:2] (->))
p_aYf[sk:2] (CDictCan)
[G] $dCategory_aYg {0}:: Category p_aYf[sk:2] (CDictCan)
[G] $dCategory_aYG {0}:: Category fsk_aYE[fsk] (CDictCan(psc))
[G] $dCategory_aYD {0}:: Category
(Nat p_aYf[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
{}
solveImplication 2
{}
WC {}
setImplicationStatus 2
[$dCategory_aYg, $d~_aYk]
([aYu :-> [G] $d~~_aYu = sc(($d~_aYk, 0)),
aYv :-> [G] cobox_aYv = sc(($d~~_aYu, 0)),
aYx :-> [G] cobox_aYx = CO <Ob p_aYf[sk:2]>_N,
aYy :-> [G] cobox_aYy = CO Sym cobox_aYx ; cobox_aYv,
aYz :-> [G] $d~_aYz
= $d~_aYk `cast` (Sub
(Sym
((~)
<i_aYe[sk:2] -> Constraint>_N
(Sym cobox)
<Vacuous p_aYf[sk:2]>_N)_N)),
aYA :-> [G] $d~~_aYA
= $d~~_aYu `cast` (Sub
(Sym
((~~)
<i_aYe[sk:2] -> Constraint>_N
<i_aYe[sk:2] -> Constraint>_N
(Sym cobox)
<Vacuous p_aYf[sk:2]>_N)_N)),
aYB :-> [G] $dFunctor_aYB = sc(($dCategory_aYg, 0)),
aYC :-> [G] $dCategory_aYC = sc(($dFunctor_aYB, 0)),
aYD :-> [G] $dCategory_aYD = sc(($dFunctor_aYB, 1)),
aYF :-> [G] cobox_aYF = CO <Op p_aYf[sk:2]>_N,
aYG :-> [G] $dCategory_aYG
= $dCategory_aYC `cast` (Sub
(Sym (Category <i_aYe[sk:2]>_N (Sym cobox))_N)),
aYq :-> [W] $d~_aYq
= $d~_aYz `cast` ((~)
<i_aYe[sk:2] -> Constraint>_N
(Trans (Sym cobox) (Sym cobox))
<Vacuous p_aYf[sk:2]>_N)_R,
aYn :-> [W] $dCategory_aYn = $dCategory_aYg],
[])
[aYg :-> $dCategory_aYg, aYk :-> $d~_aYk]
solveImplication end }
no_given_eqs = False
floated_eqs = {}
res_implic = Nothing
implication evbinds = {[G] $d~~_aYu = sc(($d~_aYk, 0)),
[G] cobox_aYv = sc(($d~~_aYu, 0)),
[G] cobox_aYx = CO <Ob p_aYf[sk:2]>_N,
[G] cobox_aYy = CO Sym cobox_aYx ; cobox_aYv,
[G] $d~_aYz
= $d~_aYk `cast` (Sub
(Sym
((~)
<i_aYe[sk:2] -> Constraint>_N
(Sym cobox)
<Vacuous p_aYf[sk:2]>_N)_N)),
[G] $d~~_aYA
= $d~~_aYu `cast` (Sub
(Sym
((~~)
<i_aYe[sk:2] -> Constraint>_N
<i_aYe[sk:2] -> Constraint>_N
(Sym cobox)
<Vacuous p_aYf[sk:2]>_N)_N)),
[G] $dFunctor_aYB = sc(($dCategory_aYg, 0)),
[G] $dCategory_aYC = sc(($dFunctor_aYB, 0)),
[G] $dCategory_aYD = sc(($dFunctor_aYB, 1)),
[G] cobox_aYF = CO <Op p_aYf[sk:2]>_N,
[G] $dCategory_aYG
= $dCategory_aYC `cast` (Sub
(Sym
(Category <i_aYe[sk:2]>_N (Sym cobox))_N)),
[W] $d~_aYq
= $d~_aYz `cast` ((~)
<i_aYe[sk:2] -> Constraint>_N
(Trans (Sym cobox) (Sym cobox))
<Vacuous p_aYf[sk:2]>_N)_R,
[W] $dCategory_aYn = $dCategory_aYg}
implication tvcs = []
solveNestedImplications end }
all floated_eqs = {}
unsolved_implics = {Nothing}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
Constraint solver steps = 15
End simplifyAmbiguityCheck }
reportUnsolved(ambig) {
newTcEvBinds unique = aYH
reportUnsolved(ambig) }
Done ambiguity check for
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a)
checkValidType done
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p a) :: *
class op type
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
checkValidType
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b) :: *
check_type
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
True
check_valid_theta [Category p]
check_type
forall (a :: i_aL2[sk:1]) (b :: i_aL2[sk:1]).
p_aL3[sk:1] a b -> Dict (Ob p_aL3[sk:1] b)
True
Ambiguity check for
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
tcSubType_NC
the type signature for ‘target’
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
tc_sub_tc_type (general case)
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
ty_expected = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
tcSkolemise
tcSkolemise
1
expected_ty forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
inst tyvars [i_aYJ[sk:2], p_aYK[sk:2], a_aYN[sk:2], b_aYO[sk:2]]
given [$dCategory_aYL]
inst type p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
tc_sub_type_ds
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
ty_expected = p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
instCallConstraints [$dCategory_aYR]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
type forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
theta [Category p]
leave_bndrs []
with [i_aYP[tau:2], p_aYQ[tau:2]]
theta: [Category p_aYQ[tau:2]]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
type forall (a :: i_aYP[tau:2]) (b :: i_aYP[tau:2]).
p_aYQ[tau:2] a b -> Dict (Ob p_aYQ[tau:2] b)
theta []
leave_bndrs []
with [a_aYS[tau:2], b_aYT[tau:2]]
theta: []
tc_sub_type_ds
ty_actual = p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
-> Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
ty_expected = p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
tc_sub_type_ds
ty_actual = Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
ty_expected = Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
deeply_instantiate final subst
origin: arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
type: Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
new type: Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
subst: [TCvSubst
In scope: InScope {i_aYP p_aYQ b_aYT}
Type env: []
Co env: []]
u_tys
tclvl 2
Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
~
Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
arising from a type equality p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
-> Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
~
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
u_tys
tclvl 2
Ob p_aYQ[tau:2] b_aYT[tau:2] ~ Ob p_aYK[sk:2] b_aYO[sk:2]
arising from a type equality p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
-> Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
~
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
New coercion hole: aYU
utype_defer
U(hole:{aYU}, Ob p_aYQ[tau:2] b_aYT[tau:2], Ob
p_aYK[sk:2] b_aYO[sk:2])_N
Ob p_aYQ[tau:2] b_aYT[tau:2]
Ob p_aYK[sk:2] b_aYO[sk:2]
arising from a type equality p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
-> Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
~
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
In the ambiguity check for ‘target’
To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
When checking the class method:
target :: forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
In the class declaration for ‘Category’
u_tys yields coercion:
U(hole:{aYU}, Ob p_aYQ[tau:2] b_aYT[tau:2], Ob
p_aYK[sk:2] b_aYO[sk:2])_N
u_tys yields coercion: (Dict {aYU})_N
tc_sub_tc_type (general case)
ty_actual = p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
ty_expected = p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
tcSkolemise
tcSkolemise
2
expected_ty p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
inst tyvars []
given []
inst type p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
tc_sub_type_ds
ty_actual = p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
ty_expected = p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
deeply_instantiate final subst
origin: arising from a type expected by the context:
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
type: p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
new type: p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
subst: [TCvSubst
In scope: InScope {i_aYJ p_aYK a_aYN b_aYO}
Type env: []
Co env: []]
u_tys
tclvl 2
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
~
p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
arising from a type equality p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
-> Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
~
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
u_tys
tclvl 2
p_aYK[sk:2] a_aYN[sk:2] ~ p_aYQ[tau:2] a_aYS[tau:2]
arising from a type equality p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
-> Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
~
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
u_tys
tclvl 2
p_aYK[sk:2] ~ p_aYQ[tau:2]
arising from a type equality p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
-> Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
~
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
u_tys
tclvl 2
i_aYJ[sk:2] -> i_aYJ[sk:2] -> * ~ i_aYP[tau:2] -> i_aYP[tau:2] -> *
arising from a kind equality arising from
p_aYQ[tau:2] ~ p_aYK[sk:2]
u_tys
tclvl 2
i_aYJ[sk:2] ~ i_aYP[tau:2]
arising from a kind equality arising from
p_aYQ[tau:2] ~ p_aYK[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
i_aYP[tau:2] ~ i_aYJ[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aYP[tau:2] ~ i_aYJ[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aYP[tau:2] := i_aYJ[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
i_aYJ[sk:2] -> * ~ i_aYP[tau:2] -> *
arising from a kind equality arising from
p_aYQ[tau:2] ~ p_aYK[sk:2]
u_tys
tclvl 2
i_aYJ[sk:2] ~ i_aYP[tau:2]
arising from a kind equality arising from
p_aYQ[tau:2] ~ p_aYK[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
p_aYQ[tau:2] ~ p_aYK[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar p_aYQ[tau:2] := p_aYK[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
a_aYN[sk:2] ~ a_aYS[tau:2]
arising from a type equality p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
-> Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
~
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
u_tys
tclvl 2
i_aYJ[sk:2] ~ i_aYJ[sk:2]
arising from a kind equality arising from
a_aYS[tau:2] ~ a_aYN[sk:2]
u_tys yields no coercion
writeMetaTyVar a_aYS[tau:2] := a_aYN[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
b_aYO[sk:2] ~ b_aYT[tau:2]
arising from a type equality p_aYQ[tau:2] a_aYS[tau:2] b_aYT[tau:2]
-> Dict (Ob p_aYQ[tau:2] b_aYT[tau:2])
~
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2])
u_tys
tclvl 2
i_aYJ[sk:2] ~ i_aYJ[sk:2]
arising from a kind equality arising from
b_aYT[tau:2] ~ b_aYO[sk:2]
u_tys yields no coercion
writeMetaTyVar b_aYT[tau:2] := b_aYO[sk:2]
u_tys yields no coercion
u_tys yields no coercion
newTcEvBinds unique = aYV
simplifyAmbiguityCheck {
type = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
wanted = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aYJ[sk:2]
(p_aYK[sk:2] :: i_aYJ[sk:2] -> i_aYJ[sk:2] -> *)
(a_aYN[sk:2] :: i_aYJ[sk:2])
(b_aYO[sk:2] :: i_aYJ[sk:2])
No-eqs = False
Status = Unsolved
Given = $dCategory_aYL :: Category p_aYK[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aYR {0}:: Category p_aYQ[tau:2] (CNonCanonical)
[WD] hole{aYU} {0}:: (Ob p_aYQ[tau:2] b_aYT[tau:2] :: Constraint)
GHC.Prim.~#
(Ob
p_aYK[sk:2]
b_aYO[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aYV>
Needed = []
the type signature for:
target :: Category p_aYK[sk:2] =>
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2]) }}
newTcEvBinds unique = aYW
solveWanteds {
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aYJ[sk:2]
(p_aYK[sk:2] :: i_aYJ[sk:2] -> i_aYJ[sk:2] -> *)
(a_aYN[sk:2] :: i_aYJ[sk:2])
(b_aYO[sk:2] :: i_aYJ[sk:2])
No-eqs = False
Status = Unsolved
Given = $dCategory_aYL :: Category p_aYK[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aYR {0}:: Category p_aYQ[tau:2] (CNonCanonical)
[WD] hole{aYU} {0}:: (Ob p_aYQ[tau:2] b_aYT[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYK[sk:2] b_aYO[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aYV>
Needed = []
the type signature for:
target :: Category p_aYK[sk:2] =>
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2]) }}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveNestedImplications starting {
solveImplication {
Implic {
TcLevel = 2
Skolems = i_aYJ[sk:2]
(p_aYK[sk:2] :: i_aYJ[sk:2] -> i_aYJ[sk:2] -> *)
(a_aYN[sk:2] :: i_aYJ[sk:2])
(b_aYO[sk:2] :: i_aYJ[sk:2])
No-eqs = False
Status = Unsolved
Given = $dCategory_aYL :: Category p_aYK[sk:2]
Wanted =
WC {wc_simple =
[WD] $dCategory_aYR {0}:: Category p_aYQ[tau:2] (CNonCanonical)
[WD] hole{aYU} {0}:: (Ob p_aYQ[tau:2] b_aYT[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYK[sk:2] b_aYO[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aYV>
Needed = []
the type signature for:
target :: Category p_aYK[sk:2] =>
p_aYK[sk:2] a_aYN[sk:2] b_aYO[sk:2]
-> Dict (Ob p_aYK[sk:2] b_aYO[sk:2]) }
Inerts {Unsolved goals = 0}
solveSimpleGivens {
[[G] $dCategory_aYL {0}:: Category p_aYK[sk:2] (CNonCanonical)]
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aYL {0}:: Category
p_aYK[sk:2] (CNonCanonical)
inerts = {Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dCategory_aYL {0}:: Category
p_aYK[sk:2] (CNonCanonical)
canonicalize (non-canonical)
[G] $dCategory_aYL {0}:: Category p_aYK[sk:2] (CNonCanonical)
canEvNC:cls Category [i_aYJ[sk:2], p_aYK[sk:2]]
addTcEvBind
aYV
[G] $dFunctor_aYX = sc(($dCategory_aYL, 0))
mk_superclasses_of
Functor [i_aYJ[sk:2], i_aYJ[sk:2] -> *, Op p_aYK[sk:2],
Nat p_aYK[sk:2] (->), p_aYK[sk:2]]
False
[rKp :-> Category]
addTcEvBind
aYV
[G] $dCategory_aYY = sc(($dFunctor_aYX, 0))
addTcEvBind
aYV
[G] $dCategory_aYZ = sc(($dFunctor_aYX, 1))
mk_superclasses_of: loop Category [i_aYJ[sk:2], Op p_aYK[sk:2]]
mk_superclasses_of: loop
Category [i_aYJ[sk:2] -> *, Nat p_aYK[sk:2] (->)]
Emitting fresh work
[G] $dFunctor_aYX {0}:: Functor
(Op p_aYK[sk:2]) (Nat p_aYK[sk:2] (->)) p_aYK[sk:2] (CDictCan)
[G] $dCategory_aYY {0}:: Category (Op p_aYK[sk:2]) (CDictCan(psc))
[G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aYJ[sk:2]
p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
flatten }
i_aYJ[sk:2]
p_aYK[sk:2]
canClass
[G] $dCategory_aYL {0}:: Category p_aYK[sk:2]
Category p_aYK[sk:2]
ContinueWith [G] $dCategory_aYL {0}:: Category p_aYK[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aYL {0}:: Category
p_aYK[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aYL {0}:: Category
p_aYK[sk:2] (CDictCan)
doTopReact [G] $dCategory_aYL {0}:: Category p_aYK[sk:2] (CDictCan)
try_fundeps
[G] $dCategory_aYL {0}:: Category p_aYK[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aYL {0}:: Category
p_aYK[sk:2] (CDictCan)
addInertCan }
Step 1[l:2,d:0] Kept as inert:
[G] $dCategory_aYL {0}:: Category p_aYK[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aYL {0}:: Category
p_aYK[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aYX {0}:: Functor
(Op p_aYK[sk:2])
(Nat p_aYK[sk:2] (->))
p_aYK[sk:2] (CDictCan)
inerts = {Dictionaries = [G] $dCategory_aYL {0}:: Category
p_aYK[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aYY {0}:: Category
(Op p_aYK[sk:2]) (CDictCan(psc))
[G] $dCategory_aYZ {0}:: Category
(Nat
p_aYK[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dFunctor_aYX {0}:: Functor
(Op p_aYK[sk:2])
(Nat p_aYK[sk:2] (->))
p_aYK[sk:2] (CDictCan)
flatten_many {
i_aYJ[sk:2]
i_aYJ[sk:2] -> *
Op p_aYK[sk:2]
Nat p_aYK[sk:2] (->)
p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
matchFamTcM
Matching: Op p_aYK[sk:2]
Match failed
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
matchFamTcM
Matching: Op p_aYK[sk:2]
Match failed
addTcEvBind
aYV
[G] cobox_aZ1 = CO <Op p_aYK[sk:2]>_N
extendFlatCache
Op [i_aYJ[sk:2], i_aYJ[sk:2], p_aYK[sk:2]]
[G]
fsk_aZ0[fsk]
flatten/flat-cache miss
Op [i_aYJ[sk:2], i_aYJ[sk:2], p_aYK[sk:2]]
fsk_aZ0[fsk]
[G] cobox_aZ1 {0}:: (Op p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2] -> i_aYJ[sk:2] -> *))
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
flatten }
i_aYJ[sk:2]
i_aYJ[sk:2] -> *
fsk_aZ0[fsk]
Nat p_aYK[sk:2] (->)
p_aYK[sk:2]
canClass
[G] $dFunctor_aYX {0}:: Functor
(Op p_aYK[sk:2]) (Nat p_aYK[sk:2] (->)) p_aYK[sk:2]
Functor fsk_aZ0[fsk] (Nat p_aYK[sk:2] (->)) p_aYK[sk:2]
ContinueWith [G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk] (Nat p_aYK[sk:2] (->)) p_aYK[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk] (Nat p_aYK[sk:2] (->)) p_aYK[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk] (Nat p_aYK[sk:2] (->)) p_aYK[sk:2] (CDictCan)
doTopReact
[G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk] (Nat p_aYK[sk:2] (->)) p_aYK[sk:2] (CDictCan)
try_fundeps
[G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk] (Nat p_aYK[sk:2] (->)) p_aYK[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk]
(Nat p_aYK[sk:2] (->))
p_aYK[sk:2] (CDictCan)
addInertCan }
Step 2[l:2,d:0] Kept as inert:
[G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk] (Nat p_aYK[sk:2] (->)) p_aYK[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk] (Nat p_aYK[sk:2] (->)) p_aYK[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aZ1 {0}:: (Op p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2] -> i_aYJ[sk:2] -> *)) (CFunEqCan)
inerts = {Dictionaries = [G] $dCategory_aYL {0}:: Category
p_aYK[sk:2] (CDictCan)
[G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk]
(Nat p_aYK[sk:2] (->))
p_aYK[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aYY {0}:: Category
(Op p_aYK[sk:2]) (CDictCan(psc))
[G] $dCategory_aYZ {0}:: Category
(Nat
p_aYK[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] cobox_aZ1 {0}:: (Op p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2] -> i_aYJ[sk:2] -> *)) (CFunEqCan)
flatten_many {
i_aYJ[sk:2]
i_aYJ[sk:2]
p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
flatten }
i_aYJ[sk:2]
i_aYJ[sk:2]
p_aYK[sk:2]
extendFlatCache
Op [i_aYJ[sk:2], i_aYJ[sk:2], p_aYK[sk:2]]
[G]
fsk_aZ0[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aZ1 {0}:: (Op p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2] -> i_aYJ[sk:2] -> *)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aZ1 {0}:: (Op p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2] -> i_aYJ[sk:2] -> *)) (CFunEqCan)
doTopReact
[G] cobox_aZ1 {0}:: (Op p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2] -> i_aYJ[sk:2] -> *)) (CFunEqCan)
matchFamTcM
Matching: Op p_aYK[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aZ1 {0}:: (Op
p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2]
-> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2]
-> *)) (CFunEqCan)
addInertCan }
Step 3[l:2,d:0] Kept as inert:
[G] cobox_aZ1 {0}:: (Op p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2] -> i_aYJ[sk:2] -> *))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aZ1 {0}:: (Op p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2] -> i_aYJ[sk:2] -> *)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aYY {0}:: Category
(Op p_aYK[sk:2]) (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aZ1 {0}:: (Op
p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dCategory_aYL {0}:: Category
p_aYK[sk:2] (CDictCan)
[G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk]
(Nat p_aYK[sk:2] (->))
p_aYK[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aYZ {0}:: Category
(Nat
p_aYK[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dCategory_aYY {0}:: Category
(Op p_aYK[sk:2]) (CDictCan(psc))
flatten_many {
i_aYJ[sk:2]
Op p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
matchFamTcM
Matching: Op p_aYK[sk:2]
Match failed
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
flatten/flat-cache hit
Op [i_aYJ[sk:2], i_aYJ[sk:2], p_aYK[sk:2]]
fsk_aZ0[fsk]
Unfilled tyvar fsk_aZ0[fsk]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
flatten }
i_aYJ[sk:2]
fsk_aZ0[fsk]
addTcEvBind
aYV
[G] $dCategory_aZ2
= $dCategory_aYY `cast` (Sub
(Sym (Category <i_aYJ[sk:2]>_N (Sym cobox))_N))
canClass
[G] $dCategory_aYY {0}:: Category (Op p_aYK[sk:2])
Category fsk_aZ0[fsk]
ContinueWith [G] $dCategory_aZ2 {0}:: Category fsk_aZ0[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aZ2 {0}:: Category
fsk_aZ0[fsk] (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aZ2 {0}:: Category
fsk_aZ0[fsk] (CDictCan(psc))
doTopReact
[G] $dCategory_aZ2 {0}:: Category fsk_aZ0[fsk] (CDictCan(psc))
try_fundeps
[G] $dCategory_aZ2 {0}:: Category fsk_aZ0[fsk] (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aZ2 {0}:: Category
fsk_aZ0[fsk] (CDictCan(psc))
addInertCan }
Step 4[l:2,d:0] Kept as inert:
[G] $dCategory_aZ2 {0}:: Category fsk_aZ0[fsk]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aZ2 {0}:: Category
fsk_aZ0[fsk] (CDictCan(psc))
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->)) (CDictCan(psc))
inerts = {Type-function equalities = [G] cobox_aZ1 {0}:: (Op
p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk]
(Nat p_aYK[sk:2] (->))
p_aYK[sk:2] (CDictCan)
[G] $dCategory_aYL {0}:: Category p_aYK[sk:2] (CDictCan)
[G] $dCategory_aZ2 {0}:: Category fsk_aZ0[fsk] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aYJ[sk:2] -> *
Nat p_aYK[sk:2] (->)
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
flatten }
i_aYJ[sk:2] -> *
Nat p_aYK[sk:2] (->)
canClass
[G] $dCategory_aYZ {0}:: Category (Nat p_aYK[sk:2] (->))
Category (Nat p_aYK[sk:2] (->))
ContinueWith [G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->)) (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->)) (CDictCan(psc))
doTopReact
[G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->)) (CDictCan(psc))
try_fundeps
[G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->)) (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aYZ {0}:: Category
(Nat
p_aYK[sk:2]
(->)) (CDictCan(psc))
addInertCan }
Step 5[l:2,d:0] Kept as inert:
[G] $dCategory_aYZ {0}:: Category (Nat p_aYK[sk:2] (->))
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->)) (CDictCan(psc))
End solveSimpleGivens }
solveWanteds {
WC {wc_simple =
[WD] $dCategory_aYR {0}:: Category p_aYQ[tau:2] (CNonCanonical)
[WD] hole{aYU} {0}:: (Ob p_aYQ[tau:2] b_aYT[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYK[sk:2] b_aYO[sk:2] :: Constraint) (CNonCanonical)}
solveSimpleWanteds {
{[WD] $dCategory_aYR {0}:: Category p_aYQ[tau:2] (CNonCanonical),
[WD] hole{aYU} {0}:: (Ob p_aYQ[tau:2] b_aYT[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYK[sk:2] b_aYO[sk:2] :: Constraint) (CNonCanonical)}
-----------------------------
Start solver pipeline {
work item = [WD] hole{aYU} {0}:: (Ob
p_aYQ[tau:2] b_aYT[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYK[sk:2] b_aYO[sk:2] :: Constraint) (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aZ1 {0}:: (Op
p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk]
(Nat p_aYK[sk:2] (->))
p_aYK[sk:2] (CDictCan)
[G] $dCategory_aYL {0}:: Category p_aYK[sk:2] (CDictCan)
[G] $dCategory_aZ2 {0}:: Category fsk_aZ0[fsk] (CDictCan(psc))
[G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [WD] $dCategory_aYR {0}:: Category
p_aYQ[tau:2] (CNonCanonical)}
runStage canonicalization {
workitem = [WD] hole{aYU} {0}:: (Ob
p_aYQ[tau:2] b_aYT[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYK[sk:2] b_aYO[sk:2] :: Constraint) (CNonCanonical)
canonicalize (non-canonical)
[WD] hole{aYU} {0}:: (Ob p_aYQ[tau:2] b_aYT[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYK[sk:2] b_aYO[sk:2] :: Constraint) (CNonCanonical)
canEvNC:eq
Ob p_aYQ[tau:2] b_aYT[tau:2]
Ob p_aYK[sk:2] b_aYO[sk:2]
Filling coercion hole aYU := <Ob p_aYK[sk:2] b_aYO[sk:2]>_N
end stage canonicalization }
Step 6[l:2,d:0] Solved by reflexivity:
[WD] hole{aYU} {0}:: (Ob p_aYQ[tau:2] b_aYT[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aYK[sk:2] b_aYO[sk:2] :: Constraint)
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [WD] $dCategory_aYR {0}:: Category
p_aYQ[tau:2] (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aZ1 {0}:: (Op
p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk]
(Nat p_aYK[sk:2] (->))
p_aYK[sk:2] (CDictCan)
[G] $dCategory_aYL {0}:: Category p_aYK[sk:2] (CDictCan)
[G] $dCategory_aZ2 {0}:: Category fsk_aZ0[fsk] (CDictCan(psc))
[G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [WD] $dCategory_aYR {0}:: Category
p_aYQ[tau:2] (CNonCanonical)
canonicalize (non-canonical)
[WD] $dCategory_aYR {0}:: Category p_aYQ[tau:2] (CNonCanonical)
canEvNC:cls Category [i_aYP[tau:2], p_aYQ[tau:2]]
flatten_many {
i_aYP[tau:2]
p_aYQ[tau:2]
Following filled tyvar i_aYP[tau:2] = i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Following filled tyvar p_aYQ[tau:2] = p_aYK[sk:2]
Unfilled tyvar p_aYK[sk:2]
Unfilled tyvar i_aYJ[sk:2]
Unfilled tyvar i_aYJ[sk:2]
flatten }
i_aYJ[sk:2]
p_aYK[sk:2]
canClass
[WD] $dCategory_aYR {0}:: Category p_aYQ[tau:2]
Category p_aYK[sk:2]
ContinueWith [WD] $dCategory_aYR {0}:: Category p_aYK[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] $dCategory_aYR {0}:: Category
p_aYK[sk:2] (CDictCan(psc))
addTcEvBind
aYV
[W] $dCategory_aYR = $dCategory_aYL
end stage interact with inerts }
Step 7[l:2,d:0] Dict equal (keep):
[WD] $dCategory_aYR {0}:: Category p_aYK[sk:2]
End solver pipeline (discharged) }
getUnsolvedInerts
tv eqs = {}
fun eqs = {}
insols = {}
others = {}
implics = {}
Unflattening
{Funeqs =
Tv eqs =}
Unflattening 1 {}
Unflattening 2 {}
Unflattening 3 {}
Unflattening done {}
zonkSimples done: {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {[G] $dFunctor_aYX = sc(($dCategory_aYL, 0)),
[G] $dCategory_aYY = sc(($dFunctor_aYX, 0)),
[G] $dCategory_aYZ = sc(($dFunctor_aYX, 1)),
[G] cobox_aZ1 = CO <Op p_aYK[sk:2]>_N,
[G] $dCategory_aZ2
= $dCategory_aYY `cast` (Sub
(Sym (Category <i_aYJ[sk:2]>_N (Sym cobox))_N)),
[W] $dCategory_aYR = $dCategory_aYL}
getNoGivenEqs
False
{Type-function equalities = [G] cobox_aZ1 {0}:: (Op
p_aYK[sk:2] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2] -> *))
GHC.Prim.~#
(fsk_aZ0[fsk] :: (i_aYJ[sk:2]
-> i_aYJ[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $dFunctor_aYX {0}:: Functor
fsk_aZ0[fsk]
(Nat p_aYK[sk:2] (->))
p_aYK[sk:2] (CDictCan)
[G] $dCategory_aYL {0}:: Category p_aYK[sk:2] (CDictCan)
[G] $dCategory_aZ2 {0}:: Category fsk_aZ0[fsk] (CDictCan(psc))
[G] $dCategory_aYZ {0}:: Category
(Nat p_aYK[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
{}
floatEqualities
Skols = [i_aYJ[sk:2], p_aYK[sk:2], a_aYN[sk:2], b_aYO[sk:2]]
Simples = {}
Floated eqs = {}
solveImplication 2
{}
WC {}
setImplicationStatus 2
[$dCategory_aYL]
([aYX :-> [G] $dFunctor_aYX = sc(($dCategory_aYL, 0)),
aYY :-> [G] $dCategory_aYY = sc(($dFunctor_aYX, 0)),
aYZ :-> [G] $dCategory_aYZ = sc(($dFunctor_aYX, 1)),
aZ1 :-> [G] cobox_aZ1 = CO <Op p_aYK[sk:2]>_N,
aZ2 :-> [G] $dCategory_aZ2
= $dCategory_aYY `cast` (Sub
(Sym (Category <i_aYJ[sk:2]>_N (Sym cobox))_N)),
aYR :-> [W] $dCategory_aYR = $dCategory_aYL],
[])
[aYL :-> $dCategory_aYL]
solveImplication end }
no_given_eqs = True
floated_eqs = {}
res_implic = Nothing
implication evbinds = {[G] $dFunctor_aYX = sc(($dCategory_aYL, 0)),
[G] $dCategory_aYY = sc(($dFunctor_aYX, 0)),
[G] $dCategory_aYZ = sc(($dFunctor_aYX, 1)),
[G] cobox_aZ1 = CO <Op p_aYK[sk:2]>_N,
[G] $dCategory_aZ2
= $dCategory_aYY `cast` (Sub
(Sym
(Category <i_aYJ[sk:2]>_N (Sym cobox))_N)),
[W] $dCategory_aYR = $dCategory_aYL}
implication tvcs = []
solveNestedImplications end }
all floated_eqs = {}
unsolved_implics = {Nothing}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {}
Constraint solver steps = 7
End simplifyAmbiguityCheck }
reportUnsolved(ambig) {
newTcEvBinds unique = aZ3
reportUnsolved(ambig) }
Done ambiguity check for
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
checkValidType done
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b) :: *
checkValidType
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b) :: *
check_type
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
True
check_valid_theta [Category p]
check_type
forall (a :: i_aL2[sk:1]) (b :: i_aL2[sk:1]).
(Ob p_aL3[sk:1] :: (i_aL2[sk:1] -> Constraint))
~
(Vacuous p_aL3[sk:1] :: (i_aL2[sk:1] -> Constraint)) =>
p_aL3[sk:1] a b -> Dict (Ob p_aL3[sk:1] b)
True
check_valid_theta
[(Ob p_aL3[sk:1] :: (i_aL2[sk:1] -> Constraint))
~
(Vacuous p_aL3[sk:1] :: (i_aL2[sk:1] -> Constraint))]
Ambiguity check for
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
tcSubType_NC
the type signature for ‘target’
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
tc_sub_tc_type (general case)
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
ty_expected = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
tcSkolemise
tcSkolemise
1
expected_ty forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
inst tyvars [i_aZ5[sk:2], p_aZ6[sk:2], a_aZ9[sk:2], b_aZa[sk:2]]
given [$dCategory_aZ7, $d~_aZb]
inst type p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
tc_sub_type_ds
ty_actual = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
ty_expected = p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
instCallConstraints [$dCategory_aZe]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
type forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
theta [Category p]
leave_bndrs []
with [i_aZc[tau:2], p_aZd[tau:2]]
theta: [Category p_aZd[tau:2]]
instCallConstraints [$d~_aZh]
Instantiating
all tyvars? True
origin arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
type forall (a :: i_aZc[tau:2]) (b :: i_aZc[tau:2]).
(Ob p_aZd[tau:2] :: (i_aZc[tau:2] -> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2] -> Constraint)) =>
p_aZd[tau:2] a b -> Dict (Ob p_aZd[tau:2] b)
theta [(Ob p_aZd[tau:2] :: (i_aZc[tau:2] -> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2] -> Constraint))]
leave_bndrs []
with [a_aZf[tau:2], b_aZg[tau:2]]
theta: [(Ob p_aZd[tau:2] :: (i_aZc[tau:2] -> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2] -> Constraint))]
tc_sub_type_ds
ty_actual = p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
-> Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
ty_expected = p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
tc_sub_type_ds
ty_actual = Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
ty_expected = Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
deeply_instantiate final subst
origin: arising from a type equality forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
~
forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint))
~
(Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
type: Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
new type: Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
subst: [TCvSubst
In scope: InScope {i_aZc p_aZd b_aZg}
Type env: []
Co env: []]
u_tys
tclvl 2
Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
~
Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
arising from a type equality p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
-> Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
~
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
u_tys
tclvl 2
Ob p_aZd[tau:2] b_aZg[tau:2] ~ Ob p_aZ6[sk:2] b_aZa[sk:2]
arising from a type equality p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
-> Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
~
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
New coercion hole: aZi
utype_defer
U(hole:{aZi}, Ob p_aZd[tau:2] b_aZg[tau:2], Ob
p_aZ6[sk:2] b_aZa[sk:2])_N
Ob p_aZd[tau:2] b_aZg[tau:2]
Ob p_aZ6[sk:2] b_aZa[sk:2]
arising from a type equality p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
-> Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
~
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
In the ambiguity check for ‘target’
To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
When checking the class method:
target :: forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i). p a b -> Dict (Ob p b)
In the class declaration for ‘Category’
u_tys yields coercion:
U(hole:{aZi}, Ob p_aZd[tau:2] b_aZg[tau:2], Ob
p_aZ6[sk:2] b_aZa[sk:2])_N
u_tys yields coercion: (Dict {aZi})_N
tc_sub_tc_type (general case)
ty_actual = p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
ty_expected = p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
tcSkolemise
tcSkolemise
2
expected_ty p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
inst tyvars []
given []
inst type p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
tc_sub_type_ds
ty_actual = p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
ty_expected = p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
deeply_instantiate final subst
origin: arising from a type expected by the context:
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
type: p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
new type: p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
subst: [TCvSubst
In scope: InScope {i_aZ5 p_aZ6 a_aZ9 b_aZa}
Type env: []
Co env: []]
u_tys
tclvl 2
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
~
p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
arising from a type equality p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
-> Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
~
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
u_tys
tclvl 2
p_aZ6[sk:2] a_aZ9[sk:2] ~ p_aZd[tau:2] a_aZf[tau:2]
arising from a type equality p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
-> Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
~
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
u_tys
tclvl 2
p_aZ6[sk:2] ~ p_aZd[tau:2]
arising from a type equality p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
-> Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
~
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
u_tys
tclvl 2
i_aZ5[sk:2] -> i_aZ5[sk:2] -> * ~ i_aZc[tau:2] -> i_aZc[tau:2] -> *
arising from a kind equality arising from
p_aZd[tau:2] ~ p_aZ6[sk:2]
u_tys
tclvl 2
i_aZ5[sk:2] ~ i_aZc[tau:2]
arising from a kind equality arising from
p_aZd[tau:2] ~ p_aZ6[sk:2]
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
i_aZc[tau:2] ~ i_aZ5[sk:2]
u_tys
tclvl 2
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep
arising from a kind equality arising from
i_aZc[tau:2] ~ i_aZ5[sk:2]
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar i_aZc[tau:2] := i_aZ5[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
i_aZ5[sk:2] -> * ~ i_aZc[tau:2] -> *
arising from a kind equality arising from
p_aZd[tau:2] ~ p_aZ6[sk:2]
u_tys
tclvl 2
i_aZ5[sk:2] ~ i_aZc[tau:2]
arising from a kind equality arising from
p_aZd[tau:2] ~ p_aZ6[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
* ~ *
arising from a kind equality arising from
p_aZd[tau:2] ~ p_aZ6[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
writeMetaTyVar p_aZd[tau:2] := p_aZ6[sk:2]
u_tys yields no coercion
u_tys
tclvl 2
a_aZ9[sk:2] ~ a_aZf[tau:2]
arising from a type equality p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
-> Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
~
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
u_tys
tclvl 2
i_aZ5[sk:2] ~ i_aZ5[sk:2]
arising from a kind equality arising from
a_aZf[tau:2] ~ a_aZ9[sk:2]
u_tys yields no coercion
writeMetaTyVar a_aZf[tau:2] := a_aZ9[sk:2]
u_tys yields no coercion
u_tys yields no coercion
u_tys
tclvl 2
b_aZa[sk:2] ~ b_aZg[tau:2]
arising from a type equality p_aZd[tau:2] a_aZf[tau:2] b_aZg[tau:2]
-> Dict (Ob p_aZd[tau:2] b_aZg[tau:2])
~
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2])
u_tys
tclvl 2
i_aZ5[sk:2] ~ i_aZ5[sk:2]
arising from a kind equality arising from
b_aZg[tau:2] ~ b_aZa[sk:2]
u_tys yields no coercion
writeMetaTyVar b_aZg[tau:2] := b_aZa[sk:2]
u_tys yields no coercion
u_tys yields no coercion
newTcEvBinds unique = aZj
simplifyAmbiguityCheck {
type = forall i (p :: i -> i -> *).
Category p =>
forall (a :: i) (b :: i).
(Ob p :: (i -> Constraint)) ~ (Vacuous p :: (i -> Constraint)) =>
p a b -> Dict (Ob p b)
wanted = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aZ5[sk:2]
(p_aZ6[sk:2] :: i_aZ5[sk:2] -> i_aZ5[sk:2] -> *)
(a_aZ9[sk:2] :: i_aZ5[sk:2])
(b_aZa[sk:2] :: i_aZ5[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dCategory_aZ7 :: Category p_aZ6[sk:2]
$d~_aZb :: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
Wanted =
WC {wc_simple =
[WD] $dCategory_aZe {0}:: Category p_aZd[tau:2] (CNonCanonical)
[WD] $d~_aZh {0}:: (Ob p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint)) (CNonCanonical)
[WD] hole{aZi} {0}:: (Ob p_aZd[tau:2] b_aZg[tau:2] :: Constraint)
GHC.Prim.~#
(Ob
p_aZ6[sk:2]
b_aZa[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aZj>
Needed = []
the type signature for:
target :: (Category p_aZ6[sk:2],
(Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))) =>
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2]) }}
newTcEvBinds unique = aZk
solveWanteds {
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = i_aZ5[sk:2]
(p_aZ6[sk:2] :: i_aZ5[sk:2] -> i_aZ5[sk:2] -> *)
(a_aZ9[sk:2] :: i_aZ5[sk:2])
(b_aZa[sk:2] :: i_aZ5[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dCategory_aZ7 :: Category p_aZ6[sk:2]
$d~_aZb :: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
Wanted =
WC {wc_simple =
[WD] $dCategory_aZe {0}:: Category p_aZd[tau:2] (CNonCanonical)
[WD] $d~_aZh {0}:: (Ob p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint)) (CNonCanonical)
[WD] hole{aZi} {0}:: (Ob p_aZd[tau:2] b_aZg[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aZ6[sk:2] b_aZa[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aZj>
Needed = []
the type signature for:
target :: (Category p_aZ6[sk:2],
(Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))) =>
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2]) }}
solveSimpleWanteds { {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveNestedImplications starting {
solveImplication {
Implic {
TcLevel = 2
Skolems = i_aZ5[sk:2]
(p_aZ6[sk:2] :: i_aZ5[sk:2] -> i_aZ5[sk:2] -> *)
(a_aZ9[sk:2] :: i_aZ5[sk:2])
(b_aZa[sk:2] :: i_aZ5[sk:2])
No-eqs = False
Status = Unsolved
Given =
$dCategory_aZ7 :: Category p_aZ6[sk:2]
$d~_aZb :: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
Wanted =
WC {wc_simple =
[WD] $dCategory_aZe {0}:: Category p_aZd[tau:2] (CNonCanonical)
[WD] $d~_aZh {0}:: (Ob p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint)) (CNonCanonical)
[WD] hole{aZi} {0}:: (Ob p_aZd[tau:2] b_aZg[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aZ6[sk:2] b_aZa[sk:2] :: Constraint) (CNonCanonical)}
Binds = EvBindsVar<aZj>
Needed = []
the type signature for:
target :: (Category p_aZ6[sk:2],
(Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))) =>
p_aZ6[sk:2] a_aZ9[sk:2] b_aZa[sk:2]
-> Dict (Ob p_aZ6[sk:2] b_aZa[sk:2]) }
Inerts {Unsolved goals = 0}
solveSimpleGivens {
[[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CNonCanonical),
[G] $d~_aZb {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CNonCanonical)]
-----------------------------
Start solver pipeline {
work item = [G] $d~_aZb {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CNonCanonical)
inerts = {Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aZ7 {0}:: Category
p_aZ6[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $d~_aZb {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CNonCanonical)
canonicalize (non-canonical)
[G] $d~_aZb {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CNonCanonical)
canEvNC:cls
~ [i_aZ5[sk:2] -> Constraint, Ob p_aZ6[sk:2], Vacuous p_aZ6[sk:2]]
addTcEvBind
aZj
[G] $d~~_aZl = sc(($d~_aZb, 0))
mk_superclasses_of
~~ [i_aZ5[sk:2] -> Constraint, i_aZ5[sk:2] -> Constraint,
Ob p_aZ6[sk:2], Vacuous p_aZ6[sk:2]]
False
[31e :-> ~]
addTcEvBind
aZj
[G] cobox_aZm = sc(($d~~_aZl, 0))
Emitting fresh work
[G] $d~~_aZl {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
[G] cobox_aZm {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CNonCanonical)
flatten_many {
i_aZ5[sk:2] -> Constraint
Ob p_aZ6[sk:2]
Vacuous p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
matchFamTcM
Matching: Ob p_aZ6[sk:2]
Match failed
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
matchFamTcM
Matching: Ob p_aZ6[sk:2]
Match failed
addTcEvBind
aZj
[G] cobox_aZo = CO <Ob p_aZ6[sk:2]>_N
extendFlatCache
Ob [i_aZ5[sk:2], p_aZ6[sk:2]]
[G]
fsk_aZn[fsk]
flatten/flat-cache miss
Ob [i_aZ5[sk:2], p_aZ6[sk:2]]
fsk_aZn[fsk]
[G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2] -> Constraint
fsk_aZn[fsk]
Vacuous p_aZ6[sk:2]
canClass
[G] $d~_aZb {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
ContinueWith [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
doTopReact
[G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
try_fundeps
[G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
addInertCan }
Step 1[l:2,d:0] Kept as inert:
[G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $d~~_aZl {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
inerts = {Dictionaries = [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Funeqs = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aZm {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CNonCanonical)
Non-eqs = [G] $dCategory_aZ7 {0}:: Category
p_aZ6[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $d~~_aZl {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
flatten_many {
i_aZ5[sk:2] -> Constraint
i_aZ5[sk:2] -> Constraint
Ob p_aZ6[sk:2]
Vacuous p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
matchFamTcM
Matching: Ob p_aZ6[sk:2]
Match failed
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten/flat-cache hit
Ob [i_aZ5[sk:2], p_aZ6[sk:2]]
fsk_aZn[fsk]
Unfilled tyvar fsk_aZn[fsk]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2] -> Constraint
i_aZ5[sk:2] -> Constraint
fsk_aZn[fsk]
Vacuous p_aZ6[sk:2]
canClass
[G] $d~~_aZl {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
ContinueWith [G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
doTopReact
[G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
try_fundeps
[G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
addInertCan }
Step 2[l:2,d:0] Kept as inert:
[G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
inerts = {Dictionaries = [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Funeqs = [G] cobox_aZm {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CNonCanonical)
Non-eqs = [G] $dCategory_aZ7 {0}:: Category
p_aZ6[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
flatten_many {
i_aZ5[sk:2]
p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2]
p_aZ6[sk:2]
extendFlatCache
Ob [i_aZ5[sk:2], p_aZ6[sk:2]]
[G]
fsk_aZn[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
doTopReact
[G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
matchFamTcM
Matching: Ob p_aZ6[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
addInertCan }
Step 3[l:2,d:0] Kept as inert:
[G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aZm {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CNonCanonical)
inerts = {Type-function equalities = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aZ7 {0}:: Category
p_aZ6[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] cobox_aZm {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CNonCanonical)
canonicalize (non-canonical)
[G] cobox_aZm {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CNonCanonical)
canEvNC:eq
Ob p_aZ6[sk:2]
Vacuous p_aZ6[sk:2]
can_eq_nc
False
[G] cobox_aZm {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
nominal equality
Ob p_aZ6[sk:2]
Ob p_aZ6[sk:2]
Vacuous p_aZ6[sk:2]
Vacuous p_aZ6[sk:2]
flatten { Ob p_aZ6[sk:2]
matchFamTcM
Matching: Ob p_aZ6[sk:2]
Match failed
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten/flat-cache hit
Ob [i_aZ5[sk:2], p_aZ6[sk:2]]
fsk_aZn[fsk]
Unfilled tyvar fsk_aZn[fsk]
Unfilled tyvar i_aZ5[sk:2]
flatten } fsk_aZn[fsk]
flatten { Vacuous p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten } Vacuous p_aZ6[sk:2]
addTcEvBind
aZj
[G] cobox_aZp = CO Sym cobox_aZo ; cobox_aZm
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CTyEqCan)
Can't solve tyvar equality
LHS: fsk_aZn[fsk] :: i_aZ5[sk:2] -> Constraint
RHS: Vacuous p_aZ6[sk:2] :: i_aZ5[sk:2] -> Constraint
addInertEq {
Adding new inert equality: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Kick out, tv = fsk_aZn[fsk]
n-kicked = 3
kicked_out = WL {Funeqs = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
Non-eqs = [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)}
Residual inerts = {Type-function equalities =
Unsolved goals = 0}
addInertEq }
end stage interact with inerts }
Step 4[l:2,d:1] Kept as inert:
[G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
inerts = {Equalities: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities =
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
flatten_many {
i_aZ5[sk:2]
p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2]
p_aZ6[sk:2]
extendFlatCache
Ob [i_aZ5[sk:2], p_aZ6[sk:2]]
[G]
fsk_aZn[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
doTopReact
[G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
matchFamTcM
Matching: Ob p_aZ6[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
addInertCan }
Step 5[l:2,d:0] Kept as inert:
[G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aZo {0}:: (Ob p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
inerts = {Equalities: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
flatten_many {
i_aZ5[sk:2] -> Constraint
fsk_aZn[fsk]
Vacuous p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar fsk_aZn[fsk]
Following inert tyvar
FM_FlattenAll fsk_aZn[fsk] = Vacuous p_aZ6[sk:2]
[G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2] -> Constraint
Vacuous p_aZ6[sk:2]
Vacuous p_aZ6[sk:2]
addTcEvBind
aZj
[G] $d~_aZq
= $d~_aZb `cast` (Sub
(Sym
((~)
<i_aZ5[sk:2] -> Constraint>_N
(Sym cobox)
<Vacuous p_aZ6[sk:2]>_N)_N))
canClass
[G] $d~_aZb {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
ContinueWith [G] $d~_aZq {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
doTopReact
[G] $d~_aZq {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
try_fundeps
[G] $d~_aZq {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
addInertCan }
Step 6[l:2,d:0] Kept as inert:
[G] $d~_aZq {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] $d~_aZq {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
inerts = {Equalities: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aZ7 {0}:: Category
p_aZ6[sk:2] (CNonCanonical)}
runStage canonicalization {
workitem = [G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
flatten_many {
i_aZ5[sk:2] -> Constraint
i_aZ5[sk:2] -> Constraint
fsk_aZn[fsk]
Vacuous p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar fsk_aZn[fsk]
Following inert tyvar
FM_FlattenAll fsk_aZn[fsk] = Vacuous p_aZ6[sk:2]
[G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2] -> Constraint
i_aZ5[sk:2] -> Constraint
Vacuous p_aZ6[sk:2]
Vacuous p_aZ6[sk:2]
addTcEvBind
aZj
[G] $d~~_aZr
= $d~~_aZl `cast` (Sub
(Sym
((~~)
<i_aZ5[sk:2] -> Constraint>_N
<i_aZ5[sk:2] -> Constraint>_N
(Sym cobox)
<Vacuous p_aZ6[sk:2]>_N)_N))
canClass
[G] $d~~_aZl {0}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
ContinueWith [G] $d~~_aZr {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $d~~_aZr {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $d~~_aZr {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
doTopReact
[G] $d~~_aZr {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
try_fundeps
[G] $d~~_aZr {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $d~~_aZr {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
addInertCan }
Step 7[l:2,d:0] Kept as inert:
[G] $d~~_aZr {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
End solver pipeline (kept as inert) }
final_item = [G] $d~~_aZr {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint)) (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aZ7 {0}:: Category
p_aZ6[sk:2] (CNonCanonical)
inerts = {Equalities: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZr {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dCategory_aZ7 {0}:: Category
p_aZ6[sk:2] (CNonCanonical)
canonicalize (non-canonical)
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CNonCanonical)
canEvNC:cls Category [i_aZ5[sk:2], p_aZ6[sk:2]]
addTcEvBind
aZj
[G] $dFunctor_aZs = sc(($dCategory_aZ7, 0))
mk_superclasses_of
Functor [i_aZ5[sk:2], i_aZ5[sk:2] -> *, Op p_aZ6[sk:2],
Nat p_aZ6[sk:2] (->), p_aZ6[sk:2]]
False
[rKp :-> Category]
addTcEvBind
aZj
[G] $dCategory_aZt = sc(($dFunctor_aZs, 0))
addTcEvBind
aZj
[G] $dCategory_aZu = sc(($dFunctor_aZs, 1))
mk_superclasses_of: loop Category [i_aZ5[sk:2], Op p_aZ6[sk:2]]
mk_superclasses_of: loop
Category [i_aZ5[sk:2] -> *, Nat p_aZ6[sk:2] (->)]
Emitting fresh work
[G] $dFunctor_aZs {0}:: Functor
(Op p_aZ6[sk:2]) (Nat p_aZ6[sk:2] (->)) p_aZ6[sk:2] (CDictCan)
[G] $dCategory_aZt {0}:: Category (Op p_aZ6[sk:2]) (CDictCan(psc))
[G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aZ5[sk:2]
p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2]
p_aZ6[sk:2]
canClass
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2]
Category p_aZ6[sk:2]
ContinueWith [G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aZ7 {0}:: Category
p_aZ6[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aZ7 {0}:: Category
p_aZ6[sk:2] (CDictCan)
doTopReact [G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CDictCan)
try_fundeps
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aZ7 {0}:: Category
p_aZ6[sk:2] (CDictCan)
addInertCan }
Step 8[l:2,d:0] Kept as inert:
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aZ7 {0}:: Category
p_aZ6[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] $dFunctor_aZs {0}:: Functor
(Op p_aZ6[sk:2])
(Nat p_aZ6[sk:2] (->))
p_aZ6[sk:2] (CDictCan)
inerts = {Equalities: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZr {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aZt {0}:: Category
(Op p_aZ6[sk:2]) (CDictCan(psc))
[G] $dCategory_aZu {0}:: Category
(Nat
p_aZ6[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dFunctor_aZs {0}:: Functor
(Op p_aZ6[sk:2])
(Nat p_aZ6[sk:2] (->))
p_aZ6[sk:2] (CDictCan)
flatten_many {
i_aZ5[sk:2]
i_aZ5[sk:2] -> *
Op p_aZ6[sk:2]
Nat p_aZ6[sk:2] (->)
p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
matchFamTcM
Matching: Op p_aZ6[sk:2]
Match failed
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
matchFamTcM
Matching: Op p_aZ6[sk:2]
Match failed
addTcEvBind
aZj
[G] cobox_aZw = CO <Op p_aZ6[sk:2]>_N
extendFlatCache
Op [i_aZ5[sk:2], i_aZ5[sk:2], p_aZ6[sk:2]]
[G]
fsk_aZv[fsk]
flatten/flat-cache miss
Op [i_aZ5[sk:2], i_aZ5[sk:2], p_aZ6[sk:2]]
fsk_aZv[fsk]
[G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2] -> i_aZ5[sk:2] -> *))
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2]
i_aZ5[sk:2] -> *
fsk_aZv[fsk]
Nat p_aZ6[sk:2] (->)
p_aZ6[sk:2]
canClass
[G] $dFunctor_aZs {0}:: Functor
(Op p_aZ6[sk:2]) (Nat p_aZ6[sk:2] (->)) p_aZ6[sk:2]
Functor fsk_aZv[fsk] (Nat p_aZ6[sk:2] (->)) p_aZ6[sk:2]
ContinueWith [G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk] (Nat p_aZ6[sk:2] (->)) p_aZ6[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk] (Nat p_aZ6[sk:2] (->)) p_aZ6[sk:2] (CDictCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk] (Nat p_aZ6[sk:2] (->)) p_aZ6[sk:2] (CDictCan)
doTopReact
[G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk] (Nat p_aZ6[sk:2] (->)) p_aZ6[sk:2] (CDictCan)
try_fundeps
[G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk] (Nat p_aZ6[sk:2] (->)) p_aZ6[sk:2] (CDictCan)
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk]
(Nat p_aZ6[sk:2] (->))
p_aZ6[sk:2] (CDictCan)
addInertCan }
Step 9[l:2,d:0] Kept as inert:
[G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk] (Nat p_aZ6[sk:2] (->)) p_aZ6[sk:2]
End solver pipeline (kept as inert) }
final_item = [G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk] (Nat p_aZ6[sk:2] (->)) p_aZ6[sk:2] (CDictCan)
-----------------------------
Start solver pipeline {
work item = [G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2] -> i_aZ5[sk:2] -> *)) (CFunEqCan)
inerts = {Equalities: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
Dictionaries = [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZr {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CDictCan)
[G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk]
(Nat p_aZ6[sk:2] (->))
p_aZ6[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aZt {0}:: Category
(Op p_aZ6[sk:2]) (CDictCan(psc))
[G] $dCategory_aZu {0}:: Category
(Nat
p_aZ6[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2] -> i_aZ5[sk:2] -> *)) (CFunEqCan)
flatten_many {
i_aZ5[sk:2]
i_aZ5[sk:2]
p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2]
i_aZ5[sk:2]
p_aZ6[sk:2]
extendFlatCache
Op [i_aZ5[sk:2], i_aZ5[sk:2], p_aZ6[sk:2]]
[G]
fsk_aZv[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2] -> i_aZ5[sk:2] -> *)) (CFunEqCan)
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2] -> i_aZ5[sk:2] -> *)) (CFunEqCan)
doTopReact
[G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2] -> i_aZ5[sk:2] -> *)) (CFunEqCan)
matchFamTcM
Matching: Op p_aZ6[sk:2]
Match failed
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] cobox_aZw {0}:: (Op
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2]
-> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2]
-> *)) (CFunEqCan)
addInertCan }
Step 10[l:2,d:0] Kept as inert:
[G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2] -> i_aZ5[sk:2] -> *))
End solver pipeline (kept as inert) }
final_item = [G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2] -> i_aZ5[sk:2] -> *)) (CFunEqCan)
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aZt {0}:: Category
(Op p_aZ6[sk:2]) (CDictCan(psc))
inerts = {Equalities: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZr {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CDictCan)
[G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk]
(Nat p_aZ6[sk:2] (->))
p_aZ6[sk:2] (CDictCan)
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [G] $dCategory_aZu {0}:: Category
(Nat
p_aZ6[sk:2] (->)) (CDictCan(psc))}
runStage canonicalization {
workitem = [G] $dCategory_aZt {0}:: Category
(Op p_aZ6[sk:2]) (CDictCan(psc))
flatten_many {
i_aZ5[sk:2]
Op p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
matchFamTcM
Matching: Op p_aZ6[sk:2]
Match failed
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten/flat-cache hit
Op [i_aZ5[sk:2], i_aZ5[sk:2], p_aZ6[sk:2]]
fsk_aZv[fsk]
Unfilled tyvar fsk_aZv[fsk]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2]
fsk_aZv[fsk]
addTcEvBind
aZj
[G] $dCategory_aZx
= $dCategory_aZt `cast` (Sub
(Sym (Category <i_aZ5[sk:2]>_N (Sym cobox))_N))
canClass
[G] $dCategory_aZt {0}:: Category (Op p_aZ6[sk:2])
Category fsk_aZv[fsk]
ContinueWith [G] $dCategory_aZx {0}:: Category fsk_aZv[fsk]
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aZx {0}:: Category
fsk_aZv[fsk] (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aZx {0}:: Category
fsk_aZv[fsk] (CDictCan(psc))
doTopReact
[G] $dCategory_aZx {0}:: Category fsk_aZv[fsk] (CDictCan(psc))
try_fundeps
[G] $dCategory_aZx {0}:: Category fsk_aZv[fsk] (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aZx {0}:: Category
fsk_aZv[fsk] (CDictCan(psc))
addInertCan }
Step 11[l:2,d:0] Kept as inert:
[G] $dCategory_aZx {0}:: Category fsk_aZv[fsk]
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aZx {0}:: Category
fsk_aZv[fsk] (CDictCan(psc))
-----------------------------
Start solver pipeline {
work item = [G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->)) (CDictCan(psc))
inerts = {Equalities: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZr {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk]
(Nat p_aZ6[sk:2] (->))
p_aZ6[sk:2] (CDictCan)
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CDictCan)
[G] $dCategory_aZx {0}:: Category fsk_aZv[fsk] (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->)) (CDictCan(psc))
flatten_many {
i_aZ5[sk:2] -> *
Nat p_aZ6[sk:2] (->)
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2] -> *
Nat p_aZ6[sk:2] (->)
canClass
[G] $dCategory_aZu {0}:: Category (Nat p_aZ6[sk:2] (->))
Category (Nat p_aZ6[sk:2] (->))
ContinueWith [G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->))
end stage canonicalization }
runStage interact with inerts {
workitem = [G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->)) (CDictCan(psc))
end stage interact with inerts }
runStage top-level reactions {
workitem = [G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->)) (CDictCan(psc))
doTopReact
[G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->)) (CDictCan(psc))
try_fundeps
[G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->)) (CDictCan(psc))
end stage top-level reactions }
insertInertCan {
Trying to insert new non-eq inert item: [G] $dCategory_aZu {0}:: Category
(Nat
p_aZ6[sk:2]
(->)) (CDictCan(psc))
addInertCan }
Step 12[l:2,d:0] Kept as inert:
[G] $dCategory_aZu {0}:: Category (Nat p_aZ6[sk:2] (->))
End solver pipeline (kept as inert) }
final_item = [G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->)) (CDictCan(psc))
End solveSimpleGivens }
solveWanteds {
WC {wc_simple =
[WD] $dCategory_aZe {0}:: Category p_aZd[tau:2] (CNonCanonical)
[WD] $d~_aZh {0}:: (Ob p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint)) (CNonCanonical)
[WD] hole{aZi} {0}:: (Ob p_aZd[tau:2] b_aZg[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aZ6[sk:2] b_aZa[sk:2] :: Constraint) (CNonCanonical)}
solveSimpleWanteds {
{[WD] $dCategory_aZe {0}:: Category p_aZd[tau:2] (CNonCanonical),
[WD] $d~_aZh {0}:: (Ob p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint)) (CNonCanonical),
[WD] hole{aZi} {0}:: (Ob p_aZd[tau:2] b_aZg[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aZ6[sk:2] b_aZa[sk:2] :: Constraint) (CNonCanonical)}
-----------------------------
Start solver pipeline {
work item = [WD] $d~_aZh {0}:: (Ob p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint)) (CNonCanonical)
inerts = {Equalities: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZr {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk]
(Nat p_aZ6[sk:2] (->))
p_aZ6[sk:2] (CDictCan)
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CDictCan)
[G] $dCategory_aZx {0}:: Category fsk_aZv[fsk] (CDictCan(psc))
[G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Funeqs = [WD] hole{aZi} {0}:: (Ob
p_aZd[tau:2] b_aZg[tau:2] :: Constraint)
GHC.Prim.~#
(Ob
p_aZ6[sk:2]
b_aZa[sk:2] :: Constraint) (CNonCanonical)
Non-eqs = [WD] $dCategory_aZe {0}:: Category
p_aZd[tau:2] (CNonCanonical)}
runStage canonicalization {
workitem = [WD] $d~_aZh {0}:: (Ob p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint)) (CNonCanonical)
canonicalize (non-canonical)
[WD] $d~_aZh {0}:: (Ob p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint)) (CNonCanonical)
canEvNC:cls
~ [i_aZc[tau:2] -> Constraint, Ob p_aZd[tau:2],
Vacuous p_aZd[tau:2]]
flatten_many {
i_aZc[tau:2] -> Constraint
Ob p_aZd[tau:2]
Vacuous p_aZd[tau:2]
Following filled tyvar i_aZc[tau:2] = i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
matchFamTcM
Matching: Ob p_aZd[tau:2]
Match failed
Following filled tyvar i_aZc[tau:2] = i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Following filled tyvar p_aZd[tau:2] = p_aZ6[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten/flat-cache hit
Ob [i_aZ5[sk:2], p_aZ6[sk:2]]
fsk_aZn[fsk]
Unfilled tyvar fsk_aZn[fsk]
Following inert tyvar
FM_FlattenAll fsk_aZn[fsk] = Vacuous p_aZ6[sk:2]
[G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2] -> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Following filled tyvar i_aZc[tau:2] = i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Following filled tyvar p_aZd[tau:2] = p_aZ6[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2] -> Constraint
Vacuous p_aZ6[sk:2]
Vacuous p_aZ6[sk:2]
newWantedEvVar/cache hit
[G] $d~_aZq {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
addTcEvBind
aZj
[W] $d~_aZh
= $d~_aZq `cast` ((~)
<i_aZ5[sk:2] -> Constraint>_N
(Trans (Sym cobox) (Sym cobox))
<Vacuous p_aZ6[sk:2]>_N)_R
canClass
[WD] $d~_aZh {0}:: (Ob p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2] -> Constraint))
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
Stop(Cached wanted) [WD] $d~_aZh {0}:: (Ob
p_aZd[tau:2] :: (i_aZc[tau:2] -> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2] -> Constraint))
end stage canonicalization }
Step 13[l:2,d:0] Cached wanted:
[WD] $d~_aZh {0}:: (Ob p_aZd[tau:2] :: (i_aZc[tau:2]
-> Constraint))
~
(Vacuous p_aZd[tau:2] :: (i_aZc[tau:2] -> Constraint))
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [WD] hole{aZi} {0}:: (Ob
p_aZd[tau:2] b_aZg[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aZ6[sk:2] b_aZa[sk:2] :: Constraint) (CNonCanonical)
inerts = {Equalities: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZr {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk]
(Nat p_aZ6[sk:2] (->))
p_aZ6[sk:2] (CDictCan)
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CDictCan)
[G] $dCategory_aZx {0}:: Category fsk_aZv[fsk] (CDictCan(psc))
[G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {Non-eqs = [WD] $dCategory_aZe {0}:: Category
p_aZd[tau:2] (CNonCanonical)}
runStage canonicalization {
workitem = [WD] hole{aZi} {0}:: (Ob
p_aZd[tau:2] b_aZg[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aZ6[sk:2] b_aZa[sk:2] :: Constraint) (CNonCanonical)
canonicalize (non-canonical)
[WD] hole{aZi} {0}:: (Ob p_aZd[tau:2] b_aZg[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aZ6[sk:2] b_aZa[sk:2] :: Constraint) (CNonCanonical)
canEvNC:eq
Ob p_aZd[tau:2] b_aZg[tau:2]
Ob p_aZ6[sk:2] b_aZa[sk:2]
Filling coercion hole aZi := <Ob p_aZ6[sk:2] b_aZa[sk:2]>_N
end stage canonicalization }
Step 14[l:2,d:0] Solved by reflexivity:
[WD] hole{aZi} {0}:: (Ob p_aZd[tau:2] b_aZg[tau:2] :: Constraint)
GHC.Prim.~#
(Ob p_aZ6[sk:2] b_aZa[sk:2] :: Constraint)
End solver pipeline (discharged) }
-----------------------------
Start solver pipeline {
work item = [WD] $dCategory_aZe {0}:: Category
p_aZd[tau:2] (CNonCanonical)
inerts = {Equalities: [G] cobox_aZp {1}:: (fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CTyEqCan)
Type-function equalities = [G] cobox_aZo {0}:: (Ob
p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
GHC.Prim.~#
(fsk_aZn[fsk] :: (i_aZ5[sk:2]
-> Constraint)) (CFunEqCan)
[G] cobox_aZw {0}:: (Op p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2] -> *))
GHC.Prim.~#
(fsk_aZv[fsk] :: (i_aZ5[sk:2]
-> i_aZ5[sk:2]
-> *)) (CFunEqCan)
Dictionaries = [G] $d~_aZq {0}:: (Vacuous
p_aZ6[sk:2] :: (i_aZ5[sk:2] -> Constraint))
~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $d~~_aZr {0}:: (Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint))
~~
(Vacuous p_aZ6[sk:2] :: (i_aZ5[sk:2]
-> Constraint)) (CDictCan)
[G] $dFunctor_aZs {0}:: Functor
fsk_aZv[fsk]
(Nat p_aZ6[sk:2] (->))
p_aZ6[sk:2] (CDictCan)
[G] $dCategory_aZ7 {0}:: Category p_aZ6[sk:2] (CDictCan)
[G] $dCategory_aZx {0}:: Category fsk_aZv[fsk] (CDictCan(psc))
[G] $dCategory_aZu {0}:: Category
(Nat p_aZ6[sk:2] (->)) (CDictCan(psc))
Unsolved goals = 0}
rest of worklist = WL {}
runStage canonicalization {
workitem = [WD] $dCategory_aZe {0}:: Category
p_aZd[tau:2] (CNonCanonical)
canonicalize (non-canonical)
[WD] $dCategory_aZe {0}:: Category p_aZd[tau:2] (CNonCanonical)
canEvNC:cls Category [i_aZc[tau:2], p_aZd[tau:2]]
flatten_many {
i_aZc[tau:2]
p_aZd[tau:2]
Following filled tyvar i_aZc[tau:2] = i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Following filled tyvar p_aZd[tau:2] = p_aZ6[sk:2]
Unfilled tyvar p_aZ6[sk:2]
Unfilled tyvar i_aZ5[sk:2]
Unfilled tyvar i_aZ5[sk:2]
flatten }
i_aZ5[sk:2]
p_aZ6[sk:2]
canClass
[WD] $dCategory_aZe {0}:: Category p_aZd[tau:2]
Category p_aZ6[sk:2]
ContinueWith [WD] $dCategory_aZe {0}:: Category p_aZ6[sk:2]
end stage canonicalization }
runStage interact with inerts {
workitem = [WD] $dCategory_aZe {0}:: Category
p_aZ6[sk:2] (CDictCan(psc))
addTcEvBind
aZj
[W] $dCategory_aZe = $dCategory_aZ7
end stage interact with inerts }
Step 15[l:2,d:0] Dict equal (keep):
[WD] $dCategory_aZe {0}:: Category p_aZ6[sk:2]
End solver pipeline (discharged) }
getUnsolvedInerts
tv eqs = {}
fun eqs = {}
insols = {}
others = {}
implics = {}
Unflattening
{Funeqs =
Tv eqs =}
Unflattening 1 {}
Unflattening 2 {}
Unflattening 3 {}
Unflattening done {}
zonkSimples done: {}
solveSimpleWanteds end }
iterations = 1
residual = WC {}
solveWanteds middle
simples1 = {}
simples2 = {}
solveWanteds }
final wc = WC {}
current evbinds = {[G] $d~~_aZl = sc(($d~_aZb, 0)),
[G] cobox_aZm = sc(($d~~_aZl, 0)),
[G] cobox_aZo = CO <Ob p_aZ6[sk:2]>_N,
[G] cobox_aZp = CO Sym cobox_aZo ; cobox_aZm,
[G] $d~_aZq
= $d~_aZb `cast` (Sub
(Sym
((~)
<i_aZ5[sk:2] -> Constraint>_N
(Sym cobox)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment