Created
February 24, 2020 19:01
-
-
Save andrewthad/8dbe182a796bcb4d94106c80d8b350b5 to your computer and use it in GitHub Desktop.
Typechecker dump for T9020 in GHC 8.8.2 and in GHC-boxedrep
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
checkFamInstConsistency [Prelude] | |
Tc2 (src) | |
Tc3 | |
tcExtendKindEnvList [] | |
tcExtendKindEnvList [] | |
tcDeriving False | |
tcDeriving 1 [] | |
rnd | |
Adding instances: | |
Tc3b | |
Tc3c | |
tcSemigroupWarnings | |
Tc4 | |
Tc4a | |
Tc5 | |
tcExtendKindEnvList [] | |
tc_extend_local_env [] | |
------------------------------------------------ | |
Bindings for { [main] | |
Generalisation plan InferGen True | |
pushLevelAndCaptureConstraints { 1 | |
newOpenInferExpType arJ True 1 | |
tcExtendBinderStack [main[<NotTopLevel>]] | |
tcMatchesFun | |
main | |
Infer{arJ,1 True} | |
newOpenInferExpType arK True 1 | |
tcBody Infer{arK,1 True} | |
newOpenInferExpType arL False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{arL,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{arL,1 False} | |
newAnonMetaTyVar t_arW[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_arW[tau:1] | |
arising from a type equality * ~ TYPE t_arW[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ t_arW[tau:1] | |
arising from a type equality * ~ TYPE t_arW[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_arW[tau:1] ~ 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_arW[tau:1] :: GHC.Types.RuntimeRep | |
'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_arW[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
arL := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_arX[tau:1] | |
instCallConstraints [$dMonad_arY] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_arM. | |
forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_arX[tau:1] | |
theta: [Monad m_arX[tau:1]] | |
cloneAnonMetaTyVar a_arZ[tau:1] | |
cloneAnonMetaTyVar b_as0[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_arU @b_arV. | |
m_arX[tau:1] a_arU -> m_arX[tau:1] b_arV -> m_arX[tau:1] b_arV | |
theta [] | |
leave_bndrs [] | |
with a_arZ[tau:1] | |
b_as0[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_arX[tau:1] b_as0[tau:1] | |
Infer{arK,1 True} | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_arX[tau:1] b_as0[tau:1] | |
new type: m_arX[tau:1] b_as0[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_arX b_as0} | |
Type env: [] | |
Co env: []] | |
newAnonMetaTyVar t_as1[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_as1[tau:1] | |
arising from a type equality * ~ TYPE t_as1[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ t_as1[tau:1] | |
arising from a type equality * ~ TYPE t_as1[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_as1[tau:1] ~ 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_as1[tau:1] :: GHC.Types.RuntimeRep | |
'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_as1[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType arK := m_arX[tau:1] b_as0[tau:1] | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_arX[tau:1] a_arZ[tau:1]} | |
cloneAnonMetaTyVar m_as3[tau:1] | |
instCallConstraints [$dMonad_as4] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_arM. forall a. Monad m_arM => a -> m_arM a | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_as3[tau:1] | |
theta: [Monad m_as3[tau:1]] | |
cloneAnonMetaTyVar a_as5[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_as2. a_as2 -> m_as3[tau:1] a_as2 | |
theta [] | |
leave_bndrs [] | |
with a_as5[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_as5[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_as5[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_as5[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_as5[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_as5[tau:1] | |
arising from a type equality () ~ a_as5[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_as5[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_as5[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_as5[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_as5[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_as3[tau:1] a_as5[tau:1] | |
ty_expected = m_arX[tau:1] a_arZ[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_as3[tau:1] a_as5[tau:1] | |
new type: m_as3[tau:1] a_as5[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_as3 a_as5} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_as3[tau:1] a_as5[tau:1] ~ m_arX[tau:1] a_arZ[tau:1] | |
arising from a type equality m_as3[tau:1] a_as5[tau:1] | |
~ | |
m_arX[tau:1] a_arZ[tau:1] | |
u_tys | |
tclvl 1 | |
m_as3[tau:1] ~ m_arX[tau:1] | |
arising from a type equality m_as3[tau:1] a_as5[tau:1] | |
~ | |
m_arX[tau:1] a_arZ[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_as3[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_as3[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_as3[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_as3[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_as3[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_as3[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_as3[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
a_as5[tau:1] ~ a_arZ[tau:1] | |
arising from a type equality m_as3[tau:1] a_as5[tau:1] | |
~ | |
m_arX[tau:1] a_arZ[tau:1] | |
found filled tyvar a_as5[tau:1] :-> () | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_arZ[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_arZ[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_arZ[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_arZ[tau:1] :: * := () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
newOpenInferExpType as6 False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{as6,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{as6,1 False} | |
newAnonMetaTyVar t_as7[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_as7[tau:1] | |
arising from a type equality * ~ TYPE t_as7[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ t_as7[tau:1] | |
arising from a type equality * ~ TYPE t_as7[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_as7[tau:1] ~ 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_as7[tau:1] :: GHC.Types.RuntimeRep | |
'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_as7[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
as6 := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_as8[tau:1] | |
instCallConstraints [$dMonad_as9] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_arM. | |
forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_as8[tau:1] | |
theta: [Monad m_as8[tau:1]] | |
cloneAnonMetaTyVar a_asa[tau:1] | |
cloneAnonMetaTyVar b_asb[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_arU @b_arV. | |
m_as8[tau:1] a_arU -> m_as8[tau:1] b_arV -> m_as8[tau:1] b_arV | |
theta [] | |
leave_bndrs [] | |
with a_asa[tau:1] | |
b_asb[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_as8[tau:1] b_asb[tau:1] | |
Check{m_arX[tau:1] b_as0[tau:1]} | |
tc_sub_type_ds | |
ty_actual = m_as8[tau:1] b_asb[tau:1] | |
ty_expected = m_arX[tau:1] b_as0[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_as8[tau:1] b_asb[tau:1] | |
new type: m_as8[tau:1] b_asb[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_as8 b_asb} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_as8[tau:1] b_asb[tau:1] ~ m_arX[tau:1] b_as0[tau:1] | |
arising from a type equality m_as8[tau:1] b_asb[tau:1] | |
~ | |
m_arX[tau:1] b_as0[tau:1] | |
u_tys | |
tclvl 1 | |
m_as8[tau:1] ~ m_arX[tau:1] | |
arising from a type equality m_as8[tau:1] b_asb[tau:1] | |
~ | |
m_arX[tau:1] b_as0[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_as8[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_as8[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_as8[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_as8[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_as8[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_as8[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_as8[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
b_asb[tau:1] ~ b_as0[tau:1] | |
arising from a type equality m_as8[tau:1] b_asb[tau:1] | |
~ | |
m_arX[tau:1] b_as0[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
b_asb[tau:1] ~ b_as0[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
b_asb[tau:1] ~ b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
b_asb[tau:1] :: * | |
b_as0[tau:1] :: * | |
True | |
<*>_N | |
writeMetaTyVar b_asb[tau:1] :: * := b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_as8[tau:1] a_asa[tau:1]} | |
cloneAnonMetaTyVar m_asc[tau:1] | |
instCallConstraints [$dMonad_asd] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_arM. forall a. Monad m_arM => a -> m_arM a | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_asc[tau:1] | |
theta: [Monad m_asc[tau:1]] | |
cloneAnonMetaTyVar a_ase[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_as2. a_as2 -> m_asc[tau:1] a_as2 | |
theta [] | |
leave_bndrs [] | |
with a_ase[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_ase[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_ase[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_ase[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_ase[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_ase[tau:1] | |
arising from a type equality () ~ a_ase[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_ase[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_ase[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_ase[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_ase[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_asc[tau:1] a_ase[tau:1] | |
ty_expected = m_as8[tau:1] a_asa[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_asc[tau:1] a_ase[tau:1] | |
new type: m_asc[tau:1] a_ase[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_asc a_ase} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_asc[tau:1] a_ase[tau:1] ~ m_as8[tau:1] a_asa[tau:1] | |
arising from a type equality m_asc[tau:1] a_ase[tau:1] | |
~ | |
m_as8[tau:1] a_asa[tau:1] | |
u_tys | |
tclvl 1 | |
m_asc[tau:1] ~ m_as8[tau:1] | |
arising from a type equality m_asc[tau:1] a_ase[tau:1] | |
~ | |
m_as8[tau:1] a_asa[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_asc[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asc[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asc[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asc[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asc[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_asc[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_asc[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
a_ase[tau:1] ~ a_asa[tau:1] | |
arising from a type equality m_asc[tau:1] a_ase[tau:1] | |
~ | |
m_as8[tau:1] a_asa[tau:1] | |
found filled tyvar a_ase[tau:1] :-> () | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_asa[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_asa[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_asa[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_asa[tau:1] :: * := () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
newOpenInferExpType asf False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{asf,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{asf,1 False} | |
newAnonMetaTyVar t_asg[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_asg[tau:1] | |
arising from a type equality * ~ TYPE t_asg[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ t_asg[tau:1] | |
arising from a type equality * ~ TYPE t_asg[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_asg[tau:1] ~ 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_asg[tau:1] :: GHC.Types.RuntimeRep | |
'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_asg[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
asf := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_ash[tau:1] | |
instCallConstraints [$dMonad_asi] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_arM. | |
forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_ash[tau:1] | |
theta: [Monad m_ash[tau:1]] | |
cloneAnonMetaTyVar a_asj[tau:1] | |
cloneAnonMetaTyVar b_ask[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_arU @b_arV. | |
m_ash[tau:1] a_arU -> m_ash[tau:1] b_arV -> m_ash[tau:1] b_arV | |
theta [] | |
leave_bndrs [] | |
with a_asj[tau:1] | |
b_ask[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_ash[tau:1] b_ask[tau:1] | |
Check{m_as8[tau:1] b_asb[tau:1]} | |
tc_sub_type_ds | |
ty_actual = m_ash[tau:1] b_ask[tau:1] | |
ty_expected = m_as8[tau:1] b_asb[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_ash[tau:1] b_ask[tau:1] | |
new type: m_ash[tau:1] b_ask[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_ash b_ask} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_ash[tau:1] b_ask[tau:1] ~ m_as8[tau:1] b_asb[tau:1] | |
arising from a type equality m_ash[tau:1] b_ask[tau:1] | |
~ | |
m_as8[tau:1] b_asb[tau:1] | |
u_tys | |
tclvl 1 | |
m_ash[tau:1] ~ m_as8[tau:1] | |
arising from a type equality m_ash[tau:1] b_ask[tau:1] | |
~ | |
m_as8[tau:1] b_asb[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_ash[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_ash[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_ash[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_ash[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_ash[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_ash[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_ash[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
b_ask[tau:1] ~ b_asb[tau:1] | |
arising from a type equality m_ash[tau:1] b_ask[tau:1] | |
~ | |
m_as8[tau:1] b_asb[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
b_ask[tau:1] ~ b_as0[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
b_ask[tau:1] ~ b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
b_ask[tau:1] :: * | |
b_as0[tau:1] :: * | |
True | |
<*>_N | |
writeMetaTyVar b_ask[tau:1] :: * := b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_ash[tau:1] a_asj[tau:1]} | |
cloneAnonMetaTyVar m_asl[tau:1] | |
instCallConstraints [$dMonad_asm] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_arM. forall a. Monad m_arM => a -> m_arM a | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_asl[tau:1] | |
theta: [Monad m_asl[tau:1]] | |
cloneAnonMetaTyVar a_asn[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_as2. a_as2 -> m_asl[tau:1] a_as2 | |
theta [] | |
leave_bndrs [] | |
with a_asn[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_asn[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_asn[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_asn[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_asn[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_asn[tau:1] | |
arising from a type equality () ~ a_asn[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_asn[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_asn[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_asn[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_asn[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_asl[tau:1] a_asn[tau:1] | |
ty_expected = m_ash[tau:1] a_asj[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_asl[tau:1] a_asn[tau:1] | |
new type: m_asl[tau:1] a_asn[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_asl a_asn} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_asl[tau:1] a_asn[tau:1] ~ m_ash[tau:1] a_asj[tau:1] | |
arising from a type equality m_asl[tau:1] a_asn[tau:1] | |
~ | |
m_ash[tau:1] a_asj[tau:1] | |
u_tys | |
tclvl 1 | |
m_asl[tau:1] ~ m_ash[tau:1] | |
arising from a type equality m_asl[tau:1] a_asn[tau:1] | |
~ | |
m_ash[tau:1] a_asj[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_asl[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asl[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asl[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asl[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asl[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_asl[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_asl[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
a_asn[tau:1] ~ a_asj[tau:1] | |
arising from a type equality m_asl[tau:1] a_asn[tau:1] | |
~ | |
m_ash[tau:1] a_asj[tau:1] | |
found filled tyvar a_asn[tau:1] :-> () | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_asj[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_asj[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_asj[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_asj[tau:1] :: * := () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
newOpenInferExpType aso False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{aso,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{aso,1 False} | |
newAnonMetaTyVar t_asp[tau:1] | |
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 | |
uUnfilledVar2 ok | |
t_asp[tau:1] :: GHC.Types.RuntimeRep | |
'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_asp[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
aso := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_asq[tau:1] | |
instCallConstraints [$dMonad_asr] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_arM. | |
forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_asq[tau:1] | |
theta: [Monad m_asq[tau:1]] | |
cloneAnonMetaTyVar a_ass[tau:1] | |
cloneAnonMetaTyVar b_ast[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_arU @b_arV. | |
m_asq[tau:1] a_arU -> m_asq[tau:1] b_arV -> m_asq[tau:1] b_arV | |
theta [] | |
leave_bndrs [] | |
with a_ass[tau:1] | |
b_ast[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_asq[tau:1] b_ast[tau:1] | |
Check{m_ash[tau:1] b_ask[tau:1]} | |
tc_sub_type_ds | |
ty_actual = m_asq[tau:1] b_ast[tau:1] | |
ty_expected = m_ash[tau:1] b_ask[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_asq[tau:1] b_ast[tau:1] | |
new type: m_asq[tau:1] b_ast[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_asq b_ast} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_asq[tau:1] b_ast[tau:1] ~ m_ash[tau:1] b_ask[tau:1] | |
arising from a type equality m_asq[tau:1] b_ast[tau:1] | |
~ | |
m_ash[tau:1] b_ask[tau:1] | |
u_tys | |
tclvl 1 | |
m_asq[tau:1] ~ m_ash[tau:1] | |
arising from a type equality m_asq[tau:1] b_ast[tau:1] | |
~ | |
m_ash[tau:1] b_ask[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_asq[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asq[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asq[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asq[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asq[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_asq[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_asq[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
b_ast[tau:1] ~ b_ask[tau:1] | |
arising from a type equality m_asq[tau:1] b_ast[tau:1] | |
~ | |
m_ash[tau:1] b_ask[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
b_ast[tau:1] ~ b_as0[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
b_ast[tau:1] ~ b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
b_ast[tau:1] :: * | |
b_as0[tau:1] :: * | |
True | |
<*>_N | |
writeMetaTyVar b_ast[tau:1] :: * := b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_asq[tau:1] a_ass[tau:1]} | |
cloneAnonMetaTyVar m_asu[tau:1] | |
instCallConstraints [$dMonad_asv] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_arM. forall a. Monad m_arM => a -> m_arM a | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_asu[tau:1] | |
theta: [Monad m_asu[tau:1]] | |
cloneAnonMetaTyVar a_asw[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_as2. a_as2 -> m_asu[tau:1] a_as2 | |
theta [] | |
leave_bndrs [] | |
with a_asw[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_asw[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_asw[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_asw[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_asw[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_asw[tau:1] | |
arising from a type equality () ~ a_asw[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_asw[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_asw[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_asw[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_asw[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_asu[tau:1] a_asw[tau:1] | |
ty_expected = m_asq[tau:1] a_ass[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_asu[tau:1] a_asw[tau:1] | |
new type: m_asu[tau:1] a_asw[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_asu a_asw} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_asu[tau:1] a_asw[tau:1] ~ m_asq[tau:1] a_ass[tau:1] | |
arising from a type equality m_asu[tau:1] a_asw[tau:1] | |
~ | |
m_asq[tau:1] a_ass[tau:1] | |
u_tys | |
tclvl 1 | |
m_asu[tau:1] ~ m_asq[tau:1] | |
arising from a type equality m_asu[tau:1] a_asw[tau:1] | |
~ | |
m_asq[tau:1] a_ass[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_asu[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asu[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asu[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asu[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asu[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_asu[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_asu[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
a_asw[tau:1] ~ a_ass[tau:1] | |
arising from a type equality m_asu[tau:1] a_asw[tau:1] | |
~ | |
m_asq[tau:1] a_ass[tau:1] | |
found filled tyvar a_asw[tau:1] :-> () | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_ass[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_ass[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_ass[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_ass[tau:1] :: * := () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
newOpenInferExpType asx False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{asx,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{asx,1 False} | |
newAnonMetaTyVar t_asy[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_asy[tau:1] | |
arising from a type equality * ~ TYPE t_asy[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ t_asy[tau:1] | |
arising from a type equality * ~ TYPE t_asy[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_asy[tau:1] ~ 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_asy[tau:1] :: GHC.Types.RuntimeRep | |
'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_asy[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
asx := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_asz[tau:1] | |
instCallConstraints [$dMonad_asA] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_arM. | |
forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_asz[tau:1] | |
theta: [Monad m_asz[tau:1]] | |
cloneAnonMetaTyVar a_asB[tau:1] | |
cloneAnonMetaTyVar b_asC[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_arU @b_arV. | |
m_asz[tau:1] a_arU -> m_asz[tau:1] b_arV -> m_asz[tau:1] b_arV | |
theta [] | |
leave_bndrs [] | |
with a_asB[tau:1] | |
b_asC[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_asz[tau:1] b_asC[tau:1] | |
Check{m_asq[tau:1] b_ast[tau:1]} | |
tc_sub_type_ds | |
ty_actual = m_asz[tau:1] b_asC[tau:1] | |
ty_expected = m_asq[tau:1] b_ast[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_asz[tau:1] b_asC[tau:1] | |
new type: m_asz[tau:1] b_asC[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_asz b_asC} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_asz[tau:1] b_asC[tau:1] ~ m_asq[tau:1] b_ast[tau:1] | |
arising from a type equality m_asz[tau:1] b_asC[tau:1] | |
~ | |
m_asq[tau:1] b_ast[tau:1] | |
u_tys | |
tclvl 1 | |
m_asz[tau:1] ~ m_asq[tau:1] | |
arising from a type equality m_asz[tau:1] b_asC[tau:1] | |
~ | |
m_asq[tau:1] b_ast[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_asz[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asz[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asz[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asz[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asz[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_asz[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_asz[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
b_asC[tau:1] ~ b_ast[tau:1] | |
arising from a type equality m_asz[tau:1] b_asC[tau:1] | |
~ | |
m_asq[tau:1] b_ast[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
b_asC[tau:1] ~ b_as0[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
b_asC[tau:1] ~ b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
b_asC[tau:1] :: * | |
b_as0[tau:1] :: * | |
True | |
<*>_N | |
writeMetaTyVar b_asC[tau:1] :: * := b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_asz[tau:1] a_asB[tau:1]} | |
cloneAnonMetaTyVar m_asD[tau:1] | |
instCallConstraints [$dMonad_asE] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_arM. forall a. Monad m_arM => a -> m_arM a | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_asD[tau:1] | |
theta: [Monad m_asD[tau:1]] | |
cloneAnonMetaTyVar a_asF[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_as2. a_as2 -> m_asD[tau:1] a_as2 | |
theta [] | |
leave_bndrs [] | |
with a_asF[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_asF[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_asF[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_asF[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_asF[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_asF[tau:1] | |
arising from a type equality () ~ a_asF[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_asF[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_asF[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_asF[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_asF[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_asD[tau:1] a_asF[tau:1] | |
ty_expected = m_asz[tau:1] a_asB[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_asD[tau:1] a_asF[tau:1] | |
new type: m_asD[tau:1] a_asF[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_asD a_asF} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_asD[tau:1] a_asF[tau:1] ~ m_asz[tau:1] a_asB[tau:1] | |
arising from a type equality m_asD[tau:1] a_asF[tau:1] | |
~ | |
m_asz[tau:1] a_asB[tau:1] | |
u_tys | |
tclvl 1 | |
m_asD[tau:1] ~ m_asz[tau:1] | |
arising from a type equality m_asD[tau:1] a_asF[tau:1] | |
~ | |
m_asz[tau:1] a_asB[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_asD[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asD[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asD[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asD[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asD[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_asD[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_asD[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
a_asF[tau:1] ~ a_asB[tau:1] | |
arising from a type equality m_asD[tau:1] a_asF[tau:1] | |
~ | |
m_asz[tau:1] a_asB[tau:1] | |
found filled tyvar a_asF[tau:1] :-> () | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_asB[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_asB[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_asB[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_asB[tau:1] :: * := () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
newOpenInferExpType asG False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{asG,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{asG,1 False} | |
newAnonMetaTyVar t_asH[tau:1] | |
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 | |
uUnfilledVar2 ok | |
t_asH[tau:1] :: GHC.Types.RuntimeRep | |
'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_asH[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
asG := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_asI[tau:1] | |
instCallConstraints [$dMonad_asJ] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_arM. | |
forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_asI[tau:1] | |
theta: [Monad m_asI[tau:1]] | |
cloneAnonMetaTyVar a_asK[tau:1] | |
cloneAnonMetaTyVar b_asL[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_arU @b_arV. | |
m_asI[tau:1] a_arU -> m_asI[tau:1] b_arV -> m_asI[tau:1] b_arV | |
theta [] | |
leave_bndrs [] | |
with a_asK[tau:1] | |
b_asL[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_asI[tau:1] b_asL[tau:1] | |
Check{m_asz[tau:1] b_asC[tau:1]} | |
tc_sub_type_ds | |
ty_actual = m_asI[tau:1] b_asL[tau:1] | |
ty_expected = m_asz[tau:1] b_asC[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_asI[tau:1] b_asL[tau:1] | |
new type: m_asI[tau:1] b_asL[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_asI b_asL} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_asI[tau:1] b_asL[tau:1] ~ m_asz[tau:1] b_asC[tau:1] | |
arising from a type equality m_asI[tau:1] b_asL[tau:1] | |
~ | |
m_asz[tau:1] b_asC[tau:1] | |
u_tys | |
tclvl 1 | |
m_asI[tau:1] ~ m_asz[tau:1] | |
arising from a type equality m_asI[tau:1] b_asL[tau:1] | |
~ | |
m_asz[tau:1] b_asC[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_asI[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asI[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asI[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asI[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asI[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_asI[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_asI[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
b_asL[tau:1] ~ b_asC[tau:1] | |
arising from a type equality m_asI[tau:1] b_asL[tau:1] | |
~ | |
m_asz[tau:1] b_asC[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
b_asL[tau:1] ~ b_as0[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
b_asL[tau:1] ~ b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
b_asL[tau:1] :: * | |
b_as0[tau:1] :: * | |
True | |
<*>_N | |
writeMetaTyVar b_asL[tau:1] :: * := b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_asI[tau:1] a_asK[tau:1]} | |
cloneAnonMetaTyVar m_asM[tau:1] | |
instCallConstraints [$dMonad_asN] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_arM. forall a. Monad m_arM => a -> m_arM a | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_asM[tau:1] | |
theta: [Monad m_asM[tau:1]] | |
cloneAnonMetaTyVar a_asO[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_as2. a_as2 -> m_asM[tau:1] a_as2 | |
theta [] | |
leave_bndrs [] | |
with a_asO[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_asO[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_asO[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_asO[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_asO[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_asO[tau:1] | |
arising from a type equality () ~ a_asO[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_asO[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_asO[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_asO[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_asO[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_asM[tau:1] a_asO[tau:1] | |
ty_expected = m_asI[tau:1] a_asK[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_asM[tau:1] a_asO[tau:1] | |
new type: m_asM[tau:1] a_asO[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_asM a_asO} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_asM[tau:1] a_asO[tau:1] ~ m_asI[tau:1] a_asK[tau:1] | |
arising from a type equality m_asM[tau:1] a_asO[tau:1] | |
~ | |
m_asI[tau:1] a_asK[tau:1] | |
u_tys | |
tclvl 1 | |
m_asM[tau:1] ~ m_asI[tau:1] | |
arising from a type equality m_asM[tau:1] a_asO[tau:1] | |
~ | |
m_asI[tau:1] a_asK[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_asM[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asM[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asM[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asM[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asM[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_asM[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_asM[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
a_asO[tau:1] ~ a_asK[tau:1] | |
arising from a type equality m_asM[tau:1] a_asO[tau:1] | |
~ | |
m_asI[tau:1] a_asK[tau:1] | |
found filled tyvar a_asO[tau:1] :-> () | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_asK[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_asK[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_asK[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_asK[tau:1] :: * := () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
newOpenInferExpType asP False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{asP,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{asP,1 False} | |
newAnonMetaTyVar t_asQ[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_asQ[tau:1] | |
arising from a type equality * ~ TYPE t_asQ[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ t_asQ[tau:1] | |
arising from a type equality * ~ TYPE t_asQ[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_asQ[tau:1] ~ 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_asQ[tau:1] :: GHC.Types.RuntimeRep | |
'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_asQ[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
asP := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_asR[tau:1] | |
instCallConstraints [$dMonad_asS] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_arM. | |
forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_asR[tau:1] | |
theta: [Monad m_asR[tau:1]] | |
cloneAnonMetaTyVar a_asT[tau:1] | |
cloneAnonMetaTyVar b_asU[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_arU @b_arV. | |
m_asR[tau:1] a_arU -> m_asR[tau:1] b_arV -> m_asR[tau:1] b_arV | |
theta [] | |
leave_bndrs [] | |
with a_asT[tau:1] | |
b_asU[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_asR[tau:1] b_asU[tau:1] | |
Check{m_asI[tau:1] b_asL[tau:1]} | |
tc_sub_type_ds | |
ty_actual = m_asR[tau:1] b_asU[tau:1] | |
ty_expected = m_asI[tau:1] b_asL[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_asR[tau:1] b_asU[tau:1] | |
new type: m_asR[tau:1] b_asU[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_asR b_asU} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_asR[tau:1] b_asU[tau:1] ~ m_asI[tau:1] b_asL[tau:1] | |
arising from a type equality m_asR[tau:1] b_asU[tau:1] | |
~ | |
m_asI[tau:1] b_asL[tau:1] | |
u_tys | |
tclvl 1 | |
m_asR[tau:1] ~ m_asI[tau:1] | |
arising from a type equality m_asR[tau:1] b_asU[tau:1] | |
~ | |
m_asI[tau:1] b_asL[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_asR[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asR[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asR[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_asR[tau:1] ~ m_arX[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
m_asR[tau:1] ~ m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_asR[tau:1] :: * -> * | |
m_arX[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_asR[tau:1] :: * -> * := m_arX[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
b_asU[tau:1] ~ b_asL[tau:1] | |
arising from a type equality m_asR[tau:1] b_asU[tau:1] | |
~ | |
m_asI[tau:1] b_asL[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
b_asU[tau:1] ~ b_as0[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from | |
b_asU[tau:1] ~ b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
b_asU[tau:1] :: * | |
b_as0[tau:1] :: * | |
True | |
<*>_N | |
writeMetaTyVar b_asU[tau:1] :: * := b_as0[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_asR[tau:1] a_asT[tau:1]} | |
cloneAnonMetaTyVar m_asV[tau:1] | |
instCallConstraints [$dMonad_asW] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_arM. forall a. Monad m_arM => a -> m_arM a | |
theta [Monad m_arM] | |
leave_bndrs [] | |
with m_asV[tau:1] | |
theta: [Monad m_asV[tau:1]] | |
cloneAnonMetaTyVar a_asX[tau:1] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_as2. a_as2 -> m_asV[tau:1] a_as2 | |
theta [] | |
leave_bndrs [] | |
with a_asX[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_asX[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_asX[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_asX[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_asX[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_asX[tau:1] | |
arising from a type equality () ~ a_asX[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_asX[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep | |
arising from a kind equality arising from a_asX[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_asX[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_asX[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_asV[tau:1] a_asX[tau:1] | |
ty_expected = m_asR[tau:1] a_asT[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_asV[tau:1] a_asX[tau:1] | |
new type: m_asV[tau:1] a_asX[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_asV a_asX} | |
Type env: [] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
checkFamInstConsistency [Prelude] | |
Tc2 (src) | |
Tc3 | |
tcExtendKindEnvList [] | |
tcExtendKindEnvList [] | |
tcDeriving [] | |
rnd | |
Adding instances: | |
Tc3b | |
Tc3c | |
tcSemigroupWarnings | |
Tc4 | |
Tc4a | |
Tc5 | |
tcExtendKindEnvList [] | |
tc_extend_local_env [] | |
------------------------------------------------ | |
Bindings for { [main] | |
Generalisation plan InferGen True | |
pushLevelAndCaptureConstraints { 1 | |
newOpenInferExpType agk True 1 | |
tcExtendBinderStack [main[<NotTopLevel>]] | |
tcMatchesFun | |
main | |
Infer{agk,1 True} | |
newOpenInferExpType agl True 1 | |
tcBody Infer{agl,1 True} | |
newOpenInferExpType agm False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{agm,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{agm,1 False} | |
newAnonMetaTyVar t_ags[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_ags[tau:1] | |
arising from a type equality * ~ TYPE t_ags[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ t_ags[tau:1] | |
arising from a type equality * ~ TYPE t_ags[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_ags[tau:1] ~ GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_ags[tau:1] :: GHC.Types.RuntimeRep | |
GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_ags[tau:1] :: GHC.Types.RuntimeRep := GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
agm := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcSyntaxOpGen | |
(>>) | |
(>>) | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_agt[tau:1] :: * -> * | |
instCallConstraints [$dMonad_agu] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_agn. | |
forall a b. Monad m_agn => m_agn a -> m_agn b -> m_agn b | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_agt[tau:1] | |
theta: [Monad m_agt[tau:1]] | |
cloneAnonMetaTyVar a_agv[tau:1] :: * | |
cloneAnonMetaTyVar b_agw[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_agq @b_agr. | |
m_agt[tau:1] a_agq -> m_agt[tau:1] b_agr -> m_agt[tau:1] b_agr | |
theta [] | |
leave_bndrs [] | |
with a_agv[tau:1] | |
b_agw[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_agt[tau:1] b_agw[tau:1] | |
Infer{agl,1 True} | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_agt[tau:1] b_agw[tau:1] | |
new type: m_agt[tau:1] b_agw[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_agt b_agw} | |
Type env: [] | |
Co env: []] | |
newAnonMetaTyVar t_agx[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_agx[tau:1] | |
arising from a type equality * ~ TYPE t_agx[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted ~ t_agx[tau:1] | |
arising from a type equality * ~ TYPE t_agx[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_agx[tau:1] ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_agx[tau:1] :: GHC.Types.RuntimeRep | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_agx[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.BoxedRep | |
'GHC.Types.Lifted | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType agl := m_agt[tau:1] b_agw[tau:1] | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_agt[tau:1] a_agv[tau:1]} | |
cloneAnonMetaTyVar m_agz[tau:1] :: * -> * | |
instCallConstraints [$dMonad_agA] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_agn. forall a. Monad m_agn => a -> m_agn a | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_agz[tau:1] | |
theta: [Monad m_agz[tau:1]] | |
cloneAnonMetaTyVar a_agB[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_agy. a_agy -> m_agz[tau:1] a_agy | |
theta [] | |
leave_bndrs [] | |
with a_agB[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_agB[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_agB[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_agB[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_agB[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_agB[tau:1] | |
arising from a type equality () ~ a_agB[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_agB[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agB[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agB[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_agB[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_agB[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_agz[tau:1] a_agB[tau:1] | |
ty_expected = m_agt[tau:1] a_agv[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_agz[tau:1] a_agB[tau:1] | |
new type: m_agz[tau:1] a_agB[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_agz a_agB} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_agz[tau:1] a_agB[tau:1] ~ m_agt[tau:1] a_agv[tau:1] | |
arising from a type equality m_agz[tau:1] a_agB[tau:1] | |
~ | |
m_agt[tau:1] a_agv[tau:1] | |
u_tys | |
tclvl 1 | |
m_agz[tau:1] ~ m_agt[tau:1] | |
arising from a type equality m_agz[tau:1] a_agB[tau:1] | |
~ | |
m_agt[tau:1] a_agv[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_agz[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agz[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agz[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agz[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agz[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agz[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agz[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_agz[tau:1] :: * -> * | |
m_agt[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_agz[tau:1] :: * -> * := m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
a_agB[tau:1] ~ a_agv[tau:1] | |
arising from a type equality m_agz[tau:1] a_agB[tau:1] | |
~ | |
m_agt[tau:1] a_agv[tau:1] | |
found filled tyvar a_agB[tau:1] :-> () | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_agv[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agv[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agv[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_agv[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_agv[tau:1] :: * := () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
newOpenInferExpType agC False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{agC,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{agC,1 False} | |
newAnonMetaTyVar t_agD[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_agD[tau:1] | |
arising from a type equality * ~ TYPE t_agD[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ t_agD[tau:1] | |
arising from a type equality * ~ TYPE t_agD[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_agD[tau:1] ~ GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_agD[tau:1] :: GHC.Types.RuntimeRep | |
GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_agD[tau:1] :: GHC.Types.RuntimeRep := GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
agC := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcSyntaxOpGen | |
(>>) | |
(>>) | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_agE[tau:1] :: * -> * | |
instCallConstraints [$dMonad_agF] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_agn. | |
forall a b. Monad m_agn => m_agn a -> m_agn b -> m_agn b | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_agE[tau:1] | |
theta: [Monad m_agE[tau:1]] | |
cloneAnonMetaTyVar a_agG[tau:1] :: * | |
cloneAnonMetaTyVar b_agH[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_agq @b_agr. | |
m_agE[tau:1] a_agq -> m_agE[tau:1] b_agr -> m_agE[tau:1] b_agr | |
theta [] | |
leave_bndrs [] | |
with a_agG[tau:1] | |
b_agH[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_agE[tau:1] b_agH[tau:1] | |
Check{m_agt[tau:1] b_agw[tau:1]} | |
tc_sub_type_ds | |
ty_actual = m_agE[tau:1] b_agH[tau:1] | |
ty_expected = m_agt[tau:1] b_agw[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_agE[tau:1] b_agH[tau:1] | |
new type: m_agE[tau:1] b_agH[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_agE b_agH} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_agE[tau:1] b_agH[tau:1] ~ m_agt[tau:1] b_agw[tau:1] | |
arising from a type equality m_agE[tau:1] b_agH[tau:1] | |
~ | |
m_agt[tau:1] b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
m_agE[tau:1] ~ m_agt[tau:1] | |
arising from a type equality m_agE[tau:1] b_agH[tau:1] | |
~ | |
m_agt[tau:1] b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_agE[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agE[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agE[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agE[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agE[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agE[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agE[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_agE[tau:1] :: * -> * | |
m_agt[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_agE[tau:1] :: * -> * := m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
b_agH[tau:1] ~ b_agw[tau:1] | |
arising from a type equality m_agE[tau:1] b_agH[tau:1] | |
~ | |
m_agt[tau:1] b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
b_agH[tau:1] ~ b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
b_agH[tau:1] ~ b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
b_agH[tau:1] ~ b_agw[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
b_agH[tau:1] :: * | |
b_agw[tau:1] :: * | |
True | |
<*>_N | |
writeMetaTyVar b_agH[tau:1] :: * := b_agw[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_agE[tau:1] a_agG[tau:1]} | |
cloneAnonMetaTyVar m_agI[tau:1] :: * -> * | |
instCallConstraints [$dMonad_agJ] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_agn. forall a. Monad m_agn => a -> m_agn a | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_agI[tau:1] | |
theta: [Monad m_agI[tau:1]] | |
cloneAnonMetaTyVar a_agK[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_agy. a_agy -> m_agI[tau:1] a_agy | |
theta [] | |
leave_bndrs [] | |
with a_agK[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_agK[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_agK[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_agK[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_agK[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_agK[tau:1] | |
arising from a type equality () ~ a_agK[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_agK[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agK[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agK[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_agK[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_agK[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_agI[tau:1] a_agK[tau:1] | |
ty_expected = m_agE[tau:1] a_agG[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_agI[tau:1] a_agK[tau:1] | |
new type: m_agI[tau:1] a_agK[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_agI a_agK} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_agI[tau:1] a_agK[tau:1] ~ m_agE[tau:1] a_agG[tau:1] | |
arising from a type equality m_agI[tau:1] a_agK[tau:1] | |
~ | |
m_agE[tau:1] a_agG[tau:1] | |
u_tys | |
tclvl 1 | |
m_agI[tau:1] ~ m_agE[tau:1] | |
arising from a type equality m_agI[tau:1] a_agK[tau:1] | |
~ | |
m_agE[tau:1] a_agG[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_agI[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agI[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agI[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agI[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agI[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agI[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agI[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_agI[tau:1] :: * -> * | |
m_agt[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_agI[tau:1] :: * -> * := m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
a_agK[tau:1] ~ a_agG[tau:1] | |
arising from a type equality m_agI[tau:1] a_agK[tau:1] | |
~ | |
m_agE[tau:1] a_agG[tau:1] | |
found filled tyvar a_agK[tau:1] :-> () | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_agG[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agG[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agG[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_agG[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_agG[tau:1] :: * := () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
newOpenInferExpType agL False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{agL,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{agL,1 False} | |
newAnonMetaTyVar t_agM[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_agM[tau:1] | |
arising from a type equality * ~ TYPE t_agM[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ t_agM[tau:1] | |
arising from a type equality * ~ TYPE t_agM[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_agM[tau:1] ~ GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_agM[tau:1] :: GHC.Types.RuntimeRep | |
GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_agM[tau:1] :: GHC.Types.RuntimeRep := GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
agL := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcSyntaxOpGen | |
(>>) | |
(>>) | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_agN[tau:1] :: * -> * | |
instCallConstraints [$dMonad_agO] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_agn. | |
forall a b. Monad m_agn => m_agn a -> m_agn b -> m_agn b | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_agN[tau:1] | |
theta: [Monad m_agN[tau:1]] | |
cloneAnonMetaTyVar a_agP[tau:1] :: * | |
cloneAnonMetaTyVar b_agQ[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_agq @b_agr. | |
m_agN[tau:1] a_agq -> m_agN[tau:1] b_agr -> m_agN[tau:1] b_agr | |
theta [] | |
leave_bndrs [] | |
with a_agP[tau:1] | |
b_agQ[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_agN[tau:1] b_agQ[tau:1] | |
Check{m_agE[tau:1] b_agH[tau:1]} | |
tc_sub_type_ds | |
ty_actual = m_agN[tau:1] b_agQ[tau:1] | |
ty_expected = m_agE[tau:1] b_agH[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_agN[tau:1] b_agQ[tau:1] | |
new type: m_agN[tau:1] b_agQ[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_agN b_agQ} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_agN[tau:1] b_agQ[tau:1] ~ m_agE[tau:1] b_agH[tau:1] | |
arising from a type equality m_agN[tau:1] b_agQ[tau:1] | |
~ | |
m_agE[tau:1] b_agH[tau:1] | |
u_tys | |
tclvl 1 | |
m_agN[tau:1] ~ m_agE[tau:1] | |
arising from a type equality m_agN[tau:1] b_agQ[tau:1] | |
~ | |
m_agE[tau:1] b_agH[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_agN[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agN[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agN[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agN[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agN[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agN[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agN[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_agN[tau:1] :: * -> * | |
m_agt[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_agN[tau:1] :: * -> * := m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
b_agQ[tau:1] ~ b_agH[tau:1] | |
arising from a type equality m_agN[tau:1] b_agQ[tau:1] | |
~ | |
m_agE[tau:1] b_agH[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
b_agQ[tau:1] ~ b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
b_agQ[tau:1] ~ b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
b_agQ[tau:1] ~ b_agw[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
b_agQ[tau:1] :: * | |
b_agw[tau:1] :: * | |
True | |
<*>_N | |
writeMetaTyVar b_agQ[tau:1] :: * := b_agw[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_agN[tau:1] a_agP[tau:1]} | |
cloneAnonMetaTyVar m_agR[tau:1] :: * -> * | |
instCallConstraints [$dMonad_agS] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_agn. forall a. Monad m_agn => a -> m_agn a | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_agR[tau:1] | |
theta: [Monad m_agR[tau:1]] | |
cloneAnonMetaTyVar a_agT[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_agy. a_agy -> m_agR[tau:1] a_agy | |
theta [] | |
leave_bndrs [] | |
with a_agT[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_agT[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_agT[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_agT[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_agT[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_agT[tau:1] | |
arising from a type equality () ~ a_agT[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_agT[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agT[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agT[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_agT[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_agT[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_agR[tau:1] a_agT[tau:1] | |
ty_expected = m_agN[tau:1] a_agP[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_agR[tau:1] a_agT[tau:1] | |
new type: m_agR[tau:1] a_agT[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_agR a_agT} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_agR[tau:1] a_agT[tau:1] ~ m_agN[tau:1] a_agP[tau:1] | |
arising from a type equality m_agR[tau:1] a_agT[tau:1] | |
~ | |
m_agN[tau:1] a_agP[tau:1] | |
u_tys | |
tclvl 1 | |
m_agR[tau:1] ~ m_agN[tau:1] | |
arising from a type equality m_agR[tau:1] a_agT[tau:1] | |
~ | |
m_agN[tau:1] a_agP[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_agR[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agR[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agR[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agR[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agR[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agR[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agR[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_agR[tau:1] :: * -> * | |
m_agt[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_agR[tau:1] :: * -> * := m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
a_agT[tau:1] ~ a_agP[tau:1] | |
arising from a type equality m_agR[tau:1] a_agT[tau:1] | |
~ | |
m_agN[tau:1] a_agP[tau:1] | |
found filled tyvar a_agT[tau:1] :-> () | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_agP[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agP[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agP[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_agP[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_agP[tau:1] :: * := () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
newOpenInferExpType agU False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{agU,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{agU,1 False} | |
newAnonMetaTyVar t_agV[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_agV[tau:1] | |
arising from a type equality * ~ TYPE t_agV[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ t_agV[tau:1] | |
arising from a type equality * ~ TYPE t_agV[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_agV[tau:1] ~ GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_agV[tau:1] :: GHC.Types.RuntimeRep | |
GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_agV[tau:1] :: GHC.Types.RuntimeRep := GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
agU := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcSyntaxOpGen | |
(>>) | |
(>>) | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_agW[tau:1] :: * -> * | |
instCallConstraints [$dMonad_agX] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_agn. | |
forall a b. Monad m_agn => m_agn a -> m_agn b -> m_agn b | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_agW[tau:1] | |
theta: [Monad m_agW[tau:1]] | |
cloneAnonMetaTyVar a_agY[tau:1] :: * | |
cloneAnonMetaTyVar b_agZ[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_agq @b_agr. | |
m_agW[tau:1] a_agq -> m_agW[tau:1] b_agr -> m_agW[tau:1] b_agr | |
theta [] | |
leave_bndrs [] | |
with a_agY[tau:1] | |
b_agZ[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_agW[tau:1] b_agZ[tau:1] | |
Check{m_agN[tau:1] b_agQ[tau:1]} | |
tc_sub_type_ds | |
ty_actual = m_agW[tau:1] b_agZ[tau:1] | |
ty_expected = m_agN[tau:1] b_agQ[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_agW[tau:1] b_agZ[tau:1] | |
new type: m_agW[tau:1] b_agZ[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_agW b_agZ} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_agW[tau:1] b_agZ[tau:1] ~ m_agN[tau:1] b_agQ[tau:1] | |
arising from a type equality m_agW[tau:1] b_agZ[tau:1] | |
~ | |
m_agN[tau:1] b_agQ[tau:1] | |
u_tys | |
tclvl 1 | |
m_agW[tau:1] ~ m_agN[tau:1] | |
arising from a type equality m_agW[tau:1] b_agZ[tau:1] | |
~ | |
m_agN[tau:1] b_agQ[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_agW[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agW[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agW[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agW[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_agW[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agW[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_agW[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_agW[tau:1] :: * -> * | |
m_agt[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_agW[tau:1] :: * -> * := m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
b_agZ[tau:1] ~ b_agQ[tau:1] | |
arising from a type equality m_agW[tau:1] b_agZ[tau:1] | |
~ | |
m_agN[tau:1] b_agQ[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
b_agZ[tau:1] ~ b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
b_agZ[tau:1] ~ b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
b_agZ[tau:1] ~ b_agw[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
b_agZ[tau:1] :: * | |
b_agw[tau:1] :: * | |
True | |
<*>_N | |
writeMetaTyVar b_agZ[tau:1] :: * := b_agw[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_agW[tau:1] a_agY[tau:1]} | |
cloneAnonMetaTyVar m_ah0[tau:1] :: * -> * | |
instCallConstraints [$dMonad_ah1] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_agn. forall a. Monad m_agn => a -> m_agn a | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_ah0[tau:1] | |
theta: [Monad m_ah0[tau:1]] | |
cloneAnonMetaTyVar a_ah2[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_agy. a_agy -> m_ah0[tau:1] a_agy | |
theta [] | |
leave_bndrs [] | |
with a_ah2[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_ah2[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_ah2[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_ah2[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_ah2[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_ah2[tau:1] | |
arising from a type equality () ~ a_ah2[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_ah2[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from a_ah2[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from a_ah2[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_ah2[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_ah2[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_ah0[tau:1] a_ah2[tau:1] | |
ty_expected = m_agW[tau:1] a_agY[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_ah0[tau:1] a_ah2[tau:1] | |
new type: m_ah0[tau:1] a_ah2[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_ah0 a_ah2} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_ah0[tau:1] a_ah2[tau:1] ~ m_agW[tau:1] a_agY[tau:1] | |
arising from a type equality m_ah0[tau:1] a_ah2[tau:1] | |
~ | |
m_agW[tau:1] a_agY[tau:1] | |
u_tys | |
tclvl 1 | |
m_ah0[tau:1] ~ m_agW[tau:1] | |
arising from a type equality m_ah0[tau:1] a_ah2[tau:1] | |
~ | |
m_agW[tau:1] a_agY[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_ah0[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_ah0[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah0[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah0[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_ah0[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah0[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah0[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_ah0[tau:1] :: * -> * | |
m_agt[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_ah0[tau:1] :: * -> * := m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
a_ah2[tau:1] ~ a_agY[tau:1] | |
arising from a type equality m_ah0[tau:1] a_ah2[tau:1] | |
~ | |
m_agW[tau:1] a_agY[tau:1] | |
found filled tyvar a_ah2[tau:1] :-> () | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_agY[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agY[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from a_agY[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_agY[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_agY[tau:1] :: * := () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
newOpenInferExpType ah3 False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{ah3,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{ah3,1 False} | |
newAnonMetaTyVar t_ah4[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_ah4[tau:1] | |
arising from a type equality * ~ TYPE t_ah4[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ t_ah4[tau:1] | |
arising from a type equality * ~ TYPE t_ah4[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_ah4[tau:1] ~ GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_ah4[tau:1] :: GHC.Types.RuntimeRep | |
GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_ah4[tau:1] :: GHC.Types.RuntimeRep := GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
ah3 := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcSyntaxOpGen | |
(>>) | |
(>>) | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_ah5[tau:1] :: * -> * | |
instCallConstraints [$dMonad_ah6] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_agn. | |
forall a b. Monad m_agn => m_agn a -> m_agn b -> m_agn b | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_ah5[tau:1] | |
theta: [Monad m_ah5[tau:1]] | |
cloneAnonMetaTyVar a_ah7[tau:1] :: * | |
cloneAnonMetaTyVar b_ah8[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_agq @b_agr. | |
m_ah5[tau:1] a_agq -> m_ah5[tau:1] b_agr -> m_ah5[tau:1] b_agr | |
theta [] | |
leave_bndrs [] | |
with a_ah7[tau:1] | |
b_ah8[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_ah5[tau:1] b_ah8[tau:1] | |
Check{m_agW[tau:1] b_agZ[tau:1]} | |
tc_sub_type_ds | |
ty_actual = m_ah5[tau:1] b_ah8[tau:1] | |
ty_expected = m_agW[tau:1] b_agZ[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_ah5[tau:1] b_ah8[tau:1] | |
new type: m_ah5[tau:1] b_ah8[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_ah5 b_ah8} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_ah5[tau:1] b_ah8[tau:1] ~ m_agW[tau:1] b_agZ[tau:1] | |
arising from a type equality m_ah5[tau:1] b_ah8[tau:1] | |
~ | |
m_agW[tau:1] b_agZ[tau:1] | |
u_tys | |
tclvl 1 | |
m_ah5[tau:1] ~ m_agW[tau:1] | |
arising from a type equality m_ah5[tau:1] b_ah8[tau:1] | |
~ | |
m_agW[tau:1] b_agZ[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_ah5[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_ah5[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah5[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah5[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_ah5[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah5[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah5[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_ah5[tau:1] :: * -> * | |
m_agt[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_ah5[tau:1] :: * -> * := m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
b_ah8[tau:1] ~ b_agZ[tau:1] | |
arising from a type equality m_ah5[tau:1] b_ah8[tau:1] | |
~ | |
m_agW[tau:1] b_agZ[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
b_ah8[tau:1] ~ b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
b_ah8[tau:1] ~ b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
b_ah8[tau:1] ~ b_agw[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
b_ah8[tau:1] :: * | |
b_agw[tau:1] :: * | |
True | |
<*>_N | |
writeMetaTyVar b_ah8[tau:1] :: * := b_agw[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_ah5[tau:1] a_ah7[tau:1]} | |
cloneAnonMetaTyVar m_ah9[tau:1] :: * -> * | |
instCallConstraints [$dMonad_aha] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_agn. forall a. Monad m_agn => a -> m_agn a | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_ah9[tau:1] | |
theta: [Monad m_ah9[tau:1]] | |
cloneAnonMetaTyVar a_ahb[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_agy. a_agy -> m_ah9[tau:1] a_agy | |
theta [] | |
leave_bndrs [] | |
with a_ahb[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_ahb[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_ahb[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_ahb[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_ahb[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_ahb[tau:1] | |
arising from a type equality () ~ a_ahb[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_ahb[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from a_ahb[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from a_ahb[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_ahb[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_ahb[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_ah9[tau:1] a_ahb[tau:1] | |
ty_expected = m_ah5[tau:1] a_ah7[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_ah9[tau:1] a_ahb[tau:1] | |
new type: m_ah9[tau:1] a_ahb[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_ah9 a_ahb} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_ah9[tau:1] a_ahb[tau:1] ~ m_ah5[tau:1] a_ah7[tau:1] | |
arising from a type equality m_ah9[tau:1] a_ahb[tau:1] | |
~ | |
m_ah5[tau:1] a_ah7[tau:1] | |
u_tys | |
tclvl 1 | |
m_ah9[tau:1] ~ m_ah5[tau:1] | |
arising from a type equality m_ah9[tau:1] a_ahb[tau:1] | |
~ | |
m_ah5[tau:1] a_ah7[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_ah9[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_ah9[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah9[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah9[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_ah9[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah9[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ah9[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_ah9[tau:1] :: * -> * | |
m_agt[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_ah9[tau:1] :: * -> * := m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
a_ahb[tau:1] ~ a_ah7[tau:1] | |
arising from a type equality m_ah9[tau:1] a_ahb[tau:1] | |
~ | |
m_ah5[tau:1] a_ah7[tau:1] | |
found filled tyvar a_ahb[tau:1] :-> () | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_ah7[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from a_ah7[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from a_ah7[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_ah7[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_ah7[tau:1] :: * := () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
newOpenInferExpType ahc False 1 | |
tcInferId | |
>> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcCheckId | |
>> | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Infer{ahc,1 False} | |
tcWrapResult | |
Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
Expected: Infer{ahc,1 False} | |
newAnonMetaTyVar t_ahd[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ TYPE t_ahd[tau:1] | |
arising from a type equality * ~ TYPE t_ahd[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ t_ahd[tau:1] | |
arising from a type equality * ~ TYPE t_ahd[tau:1] | |
u_tys | |
tclvl 1 | |
GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep | |
arising from a kind equality arising from | |
t_ahd[tau:1] ~ GHC.Types.LiftedRep | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
t_ahd[tau:1] :: GHC.Types.RuntimeRep | |
GHC.Types.LiftedRep :: GHC.Types.RuntimeRep | |
True | |
<GHC.Types.RuntimeRep>_N | |
writeMetaTyVar | |
t_ahd[tau:1] :: GHC.Types.RuntimeRep := GHC.Types.LiftedRep | |
u_tys yields no coercion | |
u_tys yields no coercion | |
Filling ExpType | |
ahc := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
tcSyntaxOpGen | |
(>>) | |
(>>) | |
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b | |
cloneAnonMetaTyVar m_ahe[tau:1] :: * -> * | |
instCallConstraints [$dMonad_ahf] | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @m_agn. | |
forall a b. Monad m_agn => m_agn a -> m_agn b -> m_agn b | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_ahe[tau:1] | |
theta: [Monad m_ahe[tau:1]] | |
cloneAnonMetaTyVar a_ahg[tau:1] :: * | |
cloneAnonMetaTyVar b_ahh[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a do statement | |
type forall @a_agq @b_agr. | |
m_ahe[tau:1] a_agq -> m_ahe[tau:1] b_agr -> m_ahe[tau:1] b_agr | |
theta [] | |
leave_bndrs [] | |
with a_ahg[tau:1] | |
b_ahh[tau:1] | |
theta: [] | |
tcSkolemise | |
tcSkolemise | |
tcSubTypeDS_O | |
arising from a do statement | |
a type expected by the context | |
m_ahe[tau:1] b_ahh[tau:1] | |
Check{m_ah5[tau:1] b_ah8[tau:1]} | |
tc_sub_type_ds | |
ty_actual = m_ahe[tau:1] b_ahh[tau:1] | |
ty_expected = m_ah5[tau:1] b_ah8[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a do statement | |
type: m_ahe[tau:1] b_ahh[tau:1] | |
new type: m_ahe[tau:1] b_ahh[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_ahe b_ahh} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_ahe[tau:1] b_ahh[tau:1] ~ m_ah5[tau:1] b_ah8[tau:1] | |
arising from a type equality m_ahe[tau:1] b_ahh[tau:1] | |
~ | |
m_ah5[tau:1] b_ah8[tau:1] | |
u_tys | |
tclvl 1 | |
m_ahe[tau:1] ~ m_ah5[tau:1] | |
arising from a type equality m_ahe[tau:1] b_ahh[tau:1] | |
~ | |
m_ah5[tau:1] b_ah8[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_ahe[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_ahe[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ahe[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ahe[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
m_ahe[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ahe[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
m_ahe[tau:1] ~ m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
m_ahe[tau:1] :: * -> * | |
m_agt[tau:1] :: * -> * | |
True | |
<* -> *>_N | |
writeMetaTyVar m_ahe[tau:1] :: * -> * := m_agt[tau:1] | |
u_tys yields no coercion | |
u_tys | |
tclvl 1 | |
b_ahh[tau:1] ~ b_ah8[tau:1] | |
arising from a type equality m_ahe[tau:1] b_ahh[tau:1] | |
~ | |
m_ah5[tau:1] b_ah8[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from | |
b_ahh[tau:1] ~ b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
~ | |
'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
b_ahh[tau:1] ~ b_agw[tau:1] | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from | |
b_ahh[tau:1] ~ b_agw[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
b_ahh[tau:1] :: * | |
b_agw[tau:1] :: * | |
True | |
<*>_N | |
writeMetaTyVar b_ahh[tau:1] :: * := b_agw[tau:1] | |
u_tys yields no coercion | |
u_tys yields no coercion | |
tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a | |
tcFunApp | |
return :: forall (m :: * -> *) a. Monad m => a -> m a | |
[()] | |
Check{m_ahe[tau:1] a_ahg[tau:1]} | |
cloneAnonMetaTyVar m_ahi[tau:1] :: * -> * | |
instCallConstraints [$dMonad_ahj] | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @m_agn. forall a. Monad m_agn => a -> m_agn a | |
theta [Monad m_agn] | |
leave_bndrs [] | |
with m_ahi[tau:1] | |
theta: [Monad m_ahi[tau:1]] | |
cloneAnonMetaTyVar a_ahk[tau:1] :: * | |
Instantiating | |
all tyvars? True | |
origin arising from a use of ‘return’ | |
type forall @a_agy. a_agy -> m_ahi[tau:1] a_agy | |
theta [] | |
leave_bndrs [] | |
with a_ahk[tau:1] | |
theta: [] | |
tcPolyExprNC Check{a_ahk[tau:1]} | |
tcSkolemise | |
tcInferId () :: () | |
tcCheckId | |
() | |
() | |
Check{a_ahk[tau:1]} | |
tcWrapResult | |
Actual: () | |
Expected: Check{a_ahk[tau:1]} | |
tc_sub_type_ds | |
ty_actual = () | |
ty_expected = a_ahk[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘()’ | |
type: () | |
new type: () | |
subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] | |
u_tys | |
tclvl 1 | |
() ~ a_ahk[tau:1] | |
arising from a type equality () ~ a_ahk[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * | |
arising from a kind equality arising from a_ahk[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
GHC.Types.LiftedRep ~ 'GHC.Types.BoxedRep 'GHC.Types.Lifted | |
arising from a kind equality arising from a_ahk[tau:1] ~ () | |
u_tys | |
tclvl 1 | |
'GHC.Types.Lifted ~ 'GHC.Types.Lifted | |
arising from a kind equality arising from a_ahk[tau:1] ~ () | |
u_tys yields no coercion | |
u_tys yields no coercion | |
u_tys yields no coercion | |
uUnfilledVar2 ok | |
a_ahk[tau:1] :: * | |
() :: * | |
True | |
<*>_N | |
writeMetaTyVar a_ahk[tau:1] :: * := () | |
u_tys yields no coercion | |
tc_sub_type_ds | |
ty_actual = m_ahi[tau:1] a_ahk[tau:1] | |
ty_expected = m_ahe[tau:1] a_ahg[tau:1] | |
deeply_instantiate final subst | |
origin: arising from a use of ‘return’ | |
type: m_ahi[tau:1] a_ahk[tau:1] | |
new type: m_ahi[tau:1] a_ahk[tau:1] | |
subst: [TCvSubst | |
In scope: InScope {m_ahi a_ahk} | |
Type env: [] | |
Co env: []] | |
u_tys | |
tclvl 1 | |
m_ahi[tau:1] a_ahk[tau:1] ~ m_ahe[tau:1] a_ahg[tau:1] | |
arising from a type equality m_ahi[tau:1] a_ahk[tau:1] | |
~ | |
m_ahe[tau:1] a_ahg[tau:1] | |
u_tys | |
tclvl 1 | |
m_ahi[tau:1] ~ m_ahe[tau:1] | |
arising from a type equality m_ahi[tau:1] a_ahk[tau:1] | |
~ | |
m_ahe[tau:1] a_ahg[tau:1] | |
u_tys | |
tclvl 1 | |
* -> * ~ * -> * | |
arising from a kind equality arising from | |
m_ahi[tau:1] ~ m_agt[tau:1] | |
u_tys | |
tclvl 1 | |
* ~ * |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment