Skip to content

Instantly share code, notes, and snippets.

@andrewthad
Created February 24, 2020 19:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andrewthad/8dbe182a796bcb4d94106c80d8b350b5 to your computer and use it in GitHub Desktop.
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
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: []
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