Created
February 24, 2020 19:01
-
-
Save andrewthad/8dbe182a796bcb4d94106c80d8b350b5 to your computer and use it in GitHub Desktop.
Revisions
-
andrewthad created this gist
Feb 24, 2020 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,2000 @@ checkFamInstConsistency [Prelude] Tc2 (src) Tc3 tcExtendKindEnvList [] tcExtendKindEnvList [] tcDeriving False tcDeriving 1 [] rnd Adding instances: Tc3b Tc3c tcSemigroupWarnings Tc4 Tc4a Tc5 tcExtendKindEnvList [] tc_extend_local_env [] ------------------------------------------------ Bindings for { [main] Generalisation plan InferGen True pushLevelAndCaptureConstraints { 1 newOpenInferExpType arJ True 1 tcExtendBinderStack [main[<NotTopLevel>]] tcMatchesFun main Infer{arJ,1 True} newOpenInferExpType arK True 1 tcBody Infer{arK,1 True} newOpenInferExpType arL False 1 tcInferId >> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b tcCheckId >> forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Infer{arL,1 False} tcWrapResult Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Expected: Infer{arL,1 False} newAnonMetaTyVar t_arW[tau:1] u_tys tclvl 1 * ~ TYPE t_arW[tau:1] arising from a type equality * ~ TYPE t_arW[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ t_arW[tau:1] arising from a type equality * ~ TYPE t_arW[tau:1] u_tys tclvl 1 GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep arising from a kind equality arising from t_arW[tau:1] ~ 'GHC.Types.LiftedRep u_tys yields no coercion uUnfilledVar2 ok t_arW[tau:1] :: GHC.Types.RuntimeRep 'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep True <GHC.Types.RuntimeRep>_N writeMetaTyVar t_arW[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep u_tys yields no coercion u_tys yields no coercion Filling ExpType arL := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b cloneAnonMetaTyVar m_arX[tau:1] instCallConstraints [$dMonad_arY] Instantiating all tyvars? True origin arising from a do statement type forall @m_arM. forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b theta [Monad m_arM] leave_bndrs [] with m_arX[tau:1] theta: [Monad m_arX[tau:1]] cloneAnonMetaTyVar a_arZ[tau:1] cloneAnonMetaTyVar b_as0[tau:1] Instantiating all tyvars? True origin arising from a do statement type forall @a_arU @b_arV. m_arX[tau:1] a_arU -> m_arX[tau:1] b_arV -> m_arX[tau:1] b_arV theta [] leave_bndrs [] with a_arZ[tau:1] b_as0[tau:1] theta: [] tcSkolemise tcSkolemise tcSubTypeDS_O arising from a do statement a type expected by the context m_arX[tau:1] b_as0[tau:1] Infer{arK,1 True} deeply_instantiate final subst origin: arising from a do statement type: m_arX[tau:1] b_as0[tau:1] new type: m_arX[tau:1] b_as0[tau:1] subst: [TCvSubst In scope: InScope {m_arX b_as0} Type env: [] Co env: []] newAnonMetaTyVar t_as1[tau:1] u_tys tclvl 1 * ~ TYPE t_as1[tau:1] arising from a type equality * ~ TYPE t_as1[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ t_as1[tau:1] arising from a type equality * ~ TYPE t_as1[tau:1] u_tys tclvl 1 GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep arising from a kind equality arising from t_as1[tau:1] ~ 'GHC.Types.LiftedRep u_tys yields no coercion uUnfilledVar2 ok t_as1[tau:1] :: GHC.Types.RuntimeRep 'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep True <GHC.Types.RuntimeRep>_N writeMetaTyVar t_as1[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep u_tys yields no coercion u_tys yields no coercion Filling ExpType arK := m_arX[tau:1] b_as0[tau:1] tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a tcFunApp return :: forall (m :: * -> *) a. Monad m => a -> m a [()] Check{m_arX[tau:1] a_arZ[tau:1]} cloneAnonMetaTyVar m_as3[tau:1] instCallConstraints [$dMonad_as4] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @m_arM. forall a. Monad m_arM => a -> m_arM a theta [Monad m_arM] leave_bndrs [] with m_as3[tau:1] theta: [Monad m_as3[tau:1]] cloneAnonMetaTyVar a_as5[tau:1] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @a_as2. a_as2 -> m_as3[tau:1] a_as2 theta [] leave_bndrs [] with a_as5[tau:1] theta: [] tcPolyExprNC Check{a_as5[tau:1]} tcSkolemise tcInferId () :: () tcCheckId () () Check{a_as5[tau:1]} tcWrapResult Actual: () Expected: Check{a_as5[tau:1]} tc_sub_type_ds ty_actual = () ty_expected = a_as5[tau:1] deeply_instantiate final subst origin: arising from a use of ‘()’ type: () new type: () subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] u_tys tclvl 1 () ~ a_as5[tau:1] arising from a type equality () ~ a_as5[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from a_as5[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_as5[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_as5[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_as5[tau:1] :: * := () u_tys yields no coercion tc_sub_type_ds ty_actual = m_as3[tau:1] a_as5[tau:1] ty_expected = m_arX[tau:1] a_arZ[tau:1] deeply_instantiate final subst origin: arising from a use of ‘return’ type: m_as3[tau:1] a_as5[tau:1] new type: m_as3[tau:1] a_as5[tau:1] subst: [TCvSubst In scope: InScope {m_as3 a_as5} Type env: [] Co env: []] u_tys tclvl 1 m_as3[tau:1] a_as5[tau:1] ~ m_arX[tau:1] a_arZ[tau:1] arising from a type equality m_as3[tau:1] a_as5[tau:1] ~ m_arX[tau:1] a_arZ[tau:1] u_tys tclvl 1 m_as3[tau:1] ~ m_arX[tau:1] arising from a type equality m_as3[tau:1] a_as5[tau:1] ~ m_arX[tau:1] a_arZ[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_as3[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_as3[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_as3[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_as3[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_as3[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_as3[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_as3[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 a_as5[tau:1] ~ a_arZ[tau:1] arising from a type equality m_as3[tau:1] a_as5[tau:1] ~ m_arX[tau:1] a_arZ[tau:1] found filled tyvar a_as5[tau:1] :-> () u_tys tclvl 1 * ~ * arising from a kind equality arising from a_arZ[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_arZ[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_arZ[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_arZ[tau:1] :: * := () u_tys yields no coercion u_tys yields no coercion newOpenInferExpType as6 False 1 tcInferId >> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b tcCheckId >> forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Infer{as6,1 False} tcWrapResult Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Expected: Infer{as6,1 False} newAnonMetaTyVar t_as7[tau:1] u_tys tclvl 1 * ~ TYPE t_as7[tau:1] arising from a type equality * ~ TYPE t_as7[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ t_as7[tau:1] arising from a type equality * ~ TYPE t_as7[tau:1] u_tys tclvl 1 GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep arising from a kind equality arising from t_as7[tau:1] ~ 'GHC.Types.LiftedRep u_tys yields no coercion uUnfilledVar2 ok t_as7[tau:1] :: GHC.Types.RuntimeRep 'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep True <GHC.Types.RuntimeRep>_N writeMetaTyVar t_as7[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep u_tys yields no coercion u_tys yields no coercion Filling ExpType as6 := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b cloneAnonMetaTyVar m_as8[tau:1] instCallConstraints [$dMonad_as9] Instantiating all tyvars? True origin arising from a do statement type forall @m_arM. forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b theta [Monad m_arM] leave_bndrs [] with m_as8[tau:1] theta: [Monad m_as8[tau:1]] cloneAnonMetaTyVar a_asa[tau:1] cloneAnonMetaTyVar b_asb[tau:1] Instantiating all tyvars? True origin arising from a do statement type forall @a_arU @b_arV. m_as8[tau:1] a_arU -> m_as8[tau:1] b_arV -> m_as8[tau:1] b_arV theta [] leave_bndrs [] with a_asa[tau:1] b_asb[tau:1] theta: [] tcSkolemise tcSkolemise tcSubTypeDS_O arising from a do statement a type expected by the context m_as8[tau:1] b_asb[tau:1] Check{m_arX[tau:1] b_as0[tau:1]} tc_sub_type_ds ty_actual = m_as8[tau:1] b_asb[tau:1] ty_expected = m_arX[tau:1] b_as0[tau:1] deeply_instantiate final subst origin: arising from a do statement type: m_as8[tau:1] b_asb[tau:1] new type: m_as8[tau:1] b_asb[tau:1] subst: [TCvSubst In scope: InScope {m_as8 b_asb} Type env: [] Co env: []] u_tys tclvl 1 m_as8[tau:1] b_asb[tau:1] ~ m_arX[tau:1] b_as0[tau:1] arising from a type equality m_as8[tau:1] b_asb[tau:1] ~ m_arX[tau:1] b_as0[tau:1] u_tys tclvl 1 m_as8[tau:1] ~ m_arX[tau:1] arising from a type equality m_as8[tau:1] b_asb[tau:1] ~ m_arX[tau:1] b_as0[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_as8[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_as8[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_as8[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_as8[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_as8[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_as8[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_as8[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 b_asb[tau:1] ~ b_as0[tau:1] arising from a type equality m_as8[tau:1] b_asb[tau:1] ~ m_arX[tau:1] b_as0[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from b_asb[tau:1] ~ b_as0[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from b_asb[tau:1] ~ b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok b_asb[tau:1] :: * b_as0[tau:1] :: * True <*>_N writeMetaTyVar b_asb[tau:1] :: * := b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a tcFunApp return :: forall (m :: * -> *) a. Monad m => a -> m a [()] Check{m_as8[tau:1] a_asa[tau:1]} cloneAnonMetaTyVar m_asc[tau:1] instCallConstraints [$dMonad_asd] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @m_arM. forall a. Monad m_arM => a -> m_arM a theta [Monad m_arM] leave_bndrs [] with m_asc[tau:1] theta: [Monad m_asc[tau:1]] cloneAnonMetaTyVar a_ase[tau:1] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @a_as2. a_as2 -> m_asc[tau:1] a_as2 theta [] leave_bndrs [] with a_ase[tau:1] theta: [] tcPolyExprNC Check{a_ase[tau:1]} tcSkolemise tcInferId () :: () tcCheckId () () Check{a_ase[tau:1]} tcWrapResult Actual: () Expected: Check{a_ase[tau:1]} tc_sub_type_ds ty_actual = () ty_expected = a_ase[tau:1] deeply_instantiate final subst origin: arising from a use of ‘()’ type: () new type: () subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] u_tys tclvl 1 () ~ a_ase[tau:1] arising from a type equality () ~ a_ase[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from a_ase[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_ase[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_ase[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_ase[tau:1] :: * := () u_tys yields no coercion tc_sub_type_ds ty_actual = m_asc[tau:1] a_ase[tau:1] ty_expected = m_as8[tau:1] a_asa[tau:1] deeply_instantiate final subst origin: arising from a use of ‘return’ type: m_asc[tau:1] a_ase[tau:1] new type: m_asc[tau:1] a_ase[tau:1] subst: [TCvSubst In scope: InScope {m_asc a_ase} Type env: [] Co env: []] u_tys tclvl 1 m_asc[tau:1] a_ase[tau:1] ~ m_as8[tau:1] a_asa[tau:1] arising from a type equality m_asc[tau:1] a_ase[tau:1] ~ m_as8[tau:1] a_asa[tau:1] u_tys tclvl 1 m_asc[tau:1] ~ m_as8[tau:1] arising from a type equality m_asc[tau:1] a_ase[tau:1] ~ m_as8[tau:1] a_asa[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_asc[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asc[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asc[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asc[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asc[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_asc[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_asc[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 a_ase[tau:1] ~ a_asa[tau:1] arising from a type equality m_asc[tau:1] a_ase[tau:1] ~ m_as8[tau:1] a_asa[tau:1] found filled tyvar a_ase[tau:1] :-> () u_tys tclvl 1 * ~ * arising from a kind equality arising from a_asa[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_asa[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_asa[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_asa[tau:1] :: * := () u_tys yields no coercion u_tys yields no coercion newOpenInferExpType asf False 1 tcInferId >> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b tcCheckId >> forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Infer{asf,1 False} tcWrapResult Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Expected: Infer{asf,1 False} newAnonMetaTyVar t_asg[tau:1] u_tys tclvl 1 * ~ TYPE t_asg[tau:1] arising from a type equality * ~ TYPE t_asg[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ t_asg[tau:1] arising from a type equality * ~ TYPE t_asg[tau:1] u_tys tclvl 1 GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep arising from a kind equality arising from t_asg[tau:1] ~ 'GHC.Types.LiftedRep u_tys yields no coercion uUnfilledVar2 ok t_asg[tau:1] :: GHC.Types.RuntimeRep 'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep True <GHC.Types.RuntimeRep>_N writeMetaTyVar t_asg[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep u_tys yields no coercion u_tys yields no coercion Filling ExpType asf := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b cloneAnonMetaTyVar m_ash[tau:1] instCallConstraints [$dMonad_asi] Instantiating all tyvars? True origin arising from a do statement type forall @m_arM. forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b theta [Monad m_arM] leave_bndrs [] with m_ash[tau:1] theta: [Monad m_ash[tau:1]] cloneAnonMetaTyVar a_asj[tau:1] cloneAnonMetaTyVar b_ask[tau:1] Instantiating all tyvars? True origin arising from a do statement type forall @a_arU @b_arV. m_ash[tau:1] a_arU -> m_ash[tau:1] b_arV -> m_ash[tau:1] b_arV theta [] leave_bndrs [] with a_asj[tau:1] b_ask[tau:1] theta: [] tcSkolemise tcSkolemise tcSubTypeDS_O arising from a do statement a type expected by the context m_ash[tau:1] b_ask[tau:1] Check{m_as8[tau:1] b_asb[tau:1]} tc_sub_type_ds ty_actual = m_ash[tau:1] b_ask[tau:1] ty_expected = m_as8[tau:1] b_asb[tau:1] deeply_instantiate final subst origin: arising from a do statement type: m_ash[tau:1] b_ask[tau:1] new type: m_ash[tau:1] b_ask[tau:1] subst: [TCvSubst In scope: InScope {m_ash b_ask} Type env: [] Co env: []] u_tys tclvl 1 m_ash[tau:1] b_ask[tau:1] ~ m_as8[tau:1] b_asb[tau:1] arising from a type equality m_ash[tau:1] b_ask[tau:1] ~ m_as8[tau:1] b_asb[tau:1] u_tys tclvl 1 m_ash[tau:1] ~ m_as8[tau:1] arising from a type equality m_ash[tau:1] b_ask[tau:1] ~ m_as8[tau:1] b_asb[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_ash[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_ash[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_ash[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_ash[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_ash[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_ash[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_ash[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 b_ask[tau:1] ~ b_asb[tau:1] arising from a type equality m_ash[tau:1] b_ask[tau:1] ~ m_as8[tau:1] b_asb[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from b_ask[tau:1] ~ b_as0[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from b_ask[tau:1] ~ b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok b_ask[tau:1] :: * b_as0[tau:1] :: * True <*>_N writeMetaTyVar b_ask[tau:1] :: * := b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a tcFunApp return :: forall (m :: * -> *) a. Monad m => a -> m a [()] Check{m_ash[tau:1] a_asj[tau:1]} cloneAnonMetaTyVar m_asl[tau:1] instCallConstraints [$dMonad_asm] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @m_arM. forall a. Monad m_arM => a -> m_arM a theta [Monad m_arM] leave_bndrs [] with m_asl[tau:1] theta: [Monad m_asl[tau:1]] cloneAnonMetaTyVar a_asn[tau:1] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @a_as2. a_as2 -> m_asl[tau:1] a_as2 theta [] leave_bndrs [] with a_asn[tau:1] theta: [] tcPolyExprNC Check{a_asn[tau:1]} tcSkolemise tcInferId () :: () tcCheckId () () Check{a_asn[tau:1]} tcWrapResult Actual: () Expected: Check{a_asn[tau:1]} tc_sub_type_ds ty_actual = () ty_expected = a_asn[tau:1] deeply_instantiate final subst origin: arising from a use of ‘()’ type: () new type: () subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] u_tys tclvl 1 () ~ a_asn[tau:1] arising from a type equality () ~ a_asn[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from a_asn[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_asn[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_asn[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_asn[tau:1] :: * := () u_tys yields no coercion tc_sub_type_ds ty_actual = m_asl[tau:1] a_asn[tau:1] ty_expected = m_ash[tau:1] a_asj[tau:1] deeply_instantiate final subst origin: arising from a use of ‘return’ type: m_asl[tau:1] a_asn[tau:1] new type: m_asl[tau:1] a_asn[tau:1] subst: [TCvSubst In scope: InScope {m_asl a_asn} Type env: [] Co env: []] u_tys tclvl 1 m_asl[tau:1] a_asn[tau:1] ~ m_ash[tau:1] a_asj[tau:1] arising from a type equality m_asl[tau:1] a_asn[tau:1] ~ m_ash[tau:1] a_asj[tau:1] u_tys tclvl 1 m_asl[tau:1] ~ m_ash[tau:1] arising from a type equality m_asl[tau:1] a_asn[tau:1] ~ m_ash[tau:1] a_asj[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_asl[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asl[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asl[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asl[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asl[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_asl[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_asl[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 a_asn[tau:1] ~ a_asj[tau:1] arising from a type equality m_asl[tau:1] a_asn[tau:1] ~ m_ash[tau:1] a_asj[tau:1] found filled tyvar a_asn[tau:1] :-> () u_tys tclvl 1 * ~ * arising from a kind equality arising from a_asj[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_asj[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_asj[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_asj[tau:1] :: * := () u_tys yields no coercion u_tys yields no coercion newOpenInferExpType aso False 1 tcInferId >> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b tcCheckId >> forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Infer{aso,1 False} tcWrapResult Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Expected: Infer{aso,1 False} newAnonMetaTyVar t_asp[tau:1] u_tys tclvl 1 * ~ TYPE t_asp[tau:1] arising from a type equality * ~ TYPE t_asp[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ t_asp[tau:1] arising from a type equality * ~ TYPE t_asp[tau:1] u_tys tclvl 1 GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep arising from a kind equality arising from t_asp[tau:1] ~ 'GHC.Types.LiftedRep u_tys yields no coercion uUnfilledVar2 ok t_asp[tau:1] :: GHC.Types.RuntimeRep 'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep True <GHC.Types.RuntimeRep>_N writeMetaTyVar t_asp[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep u_tys yields no coercion u_tys yields no coercion Filling ExpType aso := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b cloneAnonMetaTyVar m_asq[tau:1] instCallConstraints [$dMonad_asr] Instantiating all tyvars? True origin arising from a do statement type forall @m_arM. forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b theta [Monad m_arM] leave_bndrs [] with m_asq[tau:1] theta: [Monad m_asq[tau:1]] cloneAnonMetaTyVar a_ass[tau:1] cloneAnonMetaTyVar b_ast[tau:1] Instantiating all tyvars? True origin arising from a do statement type forall @a_arU @b_arV. m_asq[tau:1] a_arU -> m_asq[tau:1] b_arV -> m_asq[tau:1] b_arV theta [] leave_bndrs [] with a_ass[tau:1] b_ast[tau:1] theta: [] tcSkolemise tcSkolemise tcSubTypeDS_O arising from a do statement a type expected by the context m_asq[tau:1] b_ast[tau:1] Check{m_ash[tau:1] b_ask[tau:1]} tc_sub_type_ds ty_actual = m_asq[tau:1] b_ast[tau:1] ty_expected = m_ash[tau:1] b_ask[tau:1] deeply_instantiate final subst origin: arising from a do statement type: m_asq[tau:1] b_ast[tau:1] new type: m_asq[tau:1] b_ast[tau:1] subst: [TCvSubst In scope: InScope {m_asq b_ast} Type env: [] Co env: []] u_tys tclvl 1 m_asq[tau:1] b_ast[tau:1] ~ m_ash[tau:1] b_ask[tau:1] arising from a type equality m_asq[tau:1] b_ast[tau:1] ~ m_ash[tau:1] b_ask[tau:1] u_tys tclvl 1 m_asq[tau:1] ~ m_ash[tau:1] arising from a type equality m_asq[tau:1] b_ast[tau:1] ~ m_ash[tau:1] b_ask[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_asq[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asq[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asq[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asq[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asq[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_asq[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_asq[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 b_ast[tau:1] ~ b_ask[tau:1] arising from a type equality m_asq[tau:1] b_ast[tau:1] ~ m_ash[tau:1] b_ask[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from b_ast[tau:1] ~ b_as0[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from b_ast[tau:1] ~ b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok b_ast[tau:1] :: * b_as0[tau:1] :: * True <*>_N writeMetaTyVar b_ast[tau:1] :: * := b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a tcFunApp return :: forall (m :: * -> *) a. Monad m => a -> m a [()] Check{m_asq[tau:1] a_ass[tau:1]} cloneAnonMetaTyVar m_asu[tau:1] instCallConstraints [$dMonad_asv] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @m_arM. forall a. Monad m_arM => a -> m_arM a theta [Monad m_arM] leave_bndrs [] with m_asu[tau:1] theta: [Monad m_asu[tau:1]] cloneAnonMetaTyVar a_asw[tau:1] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @a_as2. a_as2 -> m_asu[tau:1] a_as2 theta [] leave_bndrs [] with a_asw[tau:1] theta: [] tcPolyExprNC Check{a_asw[tau:1]} tcSkolemise tcInferId () :: () tcCheckId () () Check{a_asw[tau:1]} tcWrapResult Actual: () Expected: Check{a_asw[tau:1]} tc_sub_type_ds ty_actual = () ty_expected = a_asw[tau:1] deeply_instantiate final subst origin: arising from a use of ‘()’ type: () new type: () subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] u_tys tclvl 1 () ~ a_asw[tau:1] arising from a type equality () ~ a_asw[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from a_asw[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_asw[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_asw[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_asw[tau:1] :: * := () u_tys yields no coercion tc_sub_type_ds ty_actual = m_asu[tau:1] a_asw[tau:1] ty_expected = m_asq[tau:1] a_ass[tau:1] deeply_instantiate final subst origin: arising from a use of ‘return’ type: m_asu[tau:1] a_asw[tau:1] new type: m_asu[tau:1] a_asw[tau:1] subst: [TCvSubst In scope: InScope {m_asu a_asw} Type env: [] Co env: []] u_tys tclvl 1 m_asu[tau:1] a_asw[tau:1] ~ m_asq[tau:1] a_ass[tau:1] arising from a type equality m_asu[tau:1] a_asw[tau:1] ~ m_asq[tau:1] a_ass[tau:1] u_tys tclvl 1 m_asu[tau:1] ~ m_asq[tau:1] arising from a type equality m_asu[tau:1] a_asw[tau:1] ~ m_asq[tau:1] a_ass[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_asu[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asu[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asu[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asu[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asu[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_asu[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_asu[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 a_asw[tau:1] ~ a_ass[tau:1] arising from a type equality m_asu[tau:1] a_asw[tau:1] ~ m_asq[tau:1] a_ass[tau:1] found filled tyvar a_asw[tau:1] :-> () u_tys tclvl 1 * ~ * arising from a kind equality arising from a_ass[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_ass[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_ass[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_ass[tau:1] :: * := () u_tys yields no coercion u_tys yields no coercion newOpenInferExpType asx False 1 tcInferId >> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b tcCheckId >> forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Infer{asx,1 False} tcWrapResult Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Expected: Infer{asx,1 False} newAnonMetaTyVar t_asy[tau:1] u_tys tclvl 1 * ~ TYPE t_asy[tau:1] arising from a type equality * ~ TYPE t_asy[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ t_asy[tau:1] arising from a type equality * ~ TYPE t_asy[tau:1] u_tys tclvl 1 GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep arising from a kind equality arising from t_asy[tau:1] ~ 'GHC.Types.LiftedRep u_tys yields no coercion uUnfilledVar2 ok t_asy[tau:1] :: GHC.Types.RuntimeRep 'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep True <GHC.Types.RuntimeRep>_N writeMetaTyVar t_asy[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep u_tys yields no coercion u_tys yields no coercion Filling ExpType asx := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b cloneAnonMetaTyVar m_asz[tau:1] instCallConstraints [$dMonad_asA] Instantiating all tyvars? True origin arising from a do statement type forall @m_arM. forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b theta [Monad m_arM] leave_bndrs [] with m_asz[tau:1] theta: [Monad m_asz[tau:1]] cloneAnonMetaTyVar a_asB[tau:1] cloneAnonMetaTyVar b_asC[tau:1] Instantiating all tyvars? True origin arising from a do statement type forall @a_arU @b_arV. m_asz[tau:1] a_arU -> m_asz[tau:1] b_arV -> m_asz[tau:1] b_arV theta [] leave_bndrs [] with a_asB[tau:1] b_asC[tau:1] theta: [] tcSkolemise tcSkolemise tcSubTypeDS_O arising from a do statement a type expected by the context m_asz[tau:1] b_asC[tau:1] Check{m_asq[tau:1] b_ast[tau:1]} tc_sub_type_ds ty_actual = m_asz[tau:1] b_asC[tau:1] ty_expected = m_asq[tau:1] b_ast[tau:1] deeply_instantiate final subst origin: arising from a do statement type: m_asz[tau:1] b_asC[tau:1] new type: m_asz[tau:1] b_asC[tau:1] subst: [TCvSubst In scope: InScope {m_asz b_asC} Type env: [] Co env: []] u_tys tclvl 1 m_asz[tau:1] b_asC[tau:1] ~ m_asq[tau:1] b_ast[tau:1] arising from a type equality m_asz[tau:1] b_asC[tau:1] ~ m_asq[tau:1] b_ast[tau:1] u_tys tclvl 1 m_asz[tau:1] ~ m_asq[tau:1] arising from a type equality m_asz[tau:1] b_asC[tau:1] ~ m_asq[tau:1] b_ast[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_asz[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asz[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asz[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asz[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asz[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_asz[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_asz[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 b_asC[tau:1] ~ b_ast[tau:1] arising from a type equality m_asz[tau:1] b_asC[tau:1] ~ m_asq[tau:1] b_ast[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from b_asC[tau:1] ~ b_as0[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from b_asC[tau:1] ~ b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok b_asC[tau:1] :: * b_as0[tau:1] :: * True <*>_N writeMetaTyVar b_asC[tau:1] :: * := b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a tcFunApp return :: forall (m :: * -> *) a. Monad m => a -> m a [()] Check{m_asz[tau:1] a_asB[tau:1]} cloneAnonMetaTyVar m_asD[tau:1] instCallConstraints [$dMonad_asE] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @m_arM. forall a. Monad m_arM => a -> m_arM a theta [Monad m_arM] leave_bndrs [] with m_asD[tau:1] theta: [Monad m_asD[tau:1]] cloneAnonMetaTyVar a_asF[tau:1] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @a_as2. a_as2 -> m_asD[tau:1] a_as2 theta [] leave_bndrs [] with a_asF[tau:1] theta: [] tcPolyExprNC Check{a_asF[tau:1]} tcSkolemise tcInferId () :: () tcCheckId () () Check{a_asF[tau:1]} tcWrapResult Actual: () Expected: Check{a_asF[tau:1]} tc_sub_type_ds ty_actual = () ty_expected = a_asF[tau:1] deeply_instantiate final subst origin: arising from a use of ‘()’ type: () new type: () subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] u_tys tclvl 1 () ~ a_asF[tau:1] arising from a type equality () ~ a_asF[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from a_asF[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_asF[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_asF[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_asF[tau:1] :: * := () u_tys yields no coercion tc_sub_type_ds ty_actual = m_asD[tau:1] a_asF[tau:1] ty_expected = m_asz[tau:1] a_asB[tau:1] deeply_instantiate final subst origin: arising from a use of ‘return’ type: m_asD[tau:1] a_asF[tau:1] new type: m_asD[tau:1] a_asF[tau:1] subst: [TCvSubst In scope: InScope {m_asD a_asF} Type env: [] Co env: []] u_tys tclvl 1 m_asD[tau:1] a_asF[tau:1] ~ m_asz[tau:1] a_asB[tau:1] arising from a type equality m_asD[tau:1] a_asF[tau:1] ~ m_asz[tau:1] a_asB[tau:1] u_tys tclvl 1 m_asD[tau:1] ~ m_asz[tau:1] arising from a type equality m_asD[tau:1] a_asF[tau:1] ~ m_asz[tau:1] a_asB[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_asD[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asD[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asD[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asD[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asD[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_asD[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_asD[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 a_asF[tau:1] ~ a_asB[tau:1] arising from a type equality m_asD[tau:1] a_asF[tau:1] ~ m_asz[tau:1] a_asB[tau:1] found filled tyvar a_asF[tau:1] :-> () u_tys tclvl 1 * ~ * arising from a kind equality arising from a_asB[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_asB[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_asB[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_asB[tau:1] :: * := () u_tys yields no coercion u_tys yields no coercion newOpenInferExpType asG False 1 tcInferId >> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b tcCheckId >> forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Infer{asG,1 False} tcWrapResult Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Expected: Infer{asG,1 False} newAnonMetaTyVar t_asH[tau:1] u_tys tclvl 1 * ~ TYPE t_asH[tau:1] arising from a type equality * ~ TYPE t_asH[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ t_asH[tau:1] arising from a type equality * ~ TYPE t_asH[tau:1] u_tys tclvl 1 GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep arising from a kind equality arising from t_asH[tau:1] ~ 'GHC.Types.LiftedRep u_tys yields no coercion uUnfilledVar2 ok t_asH[tau:1] :: GHC.Types.RuntimeRep 'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep True <GHC.Types.RuntimeRep>_N writeMetaTyVar t_asH[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep u_tys yields no coercion u_tys yields no coercion Filling ExpType asG := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b cloneAnonMetaTyVar m_asI[tau:1] instCallConstraints [$dMonad_asJ] Instantiating all tyvars? True origin arising from a do statement type forall @m_arM. forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b theta [Monad m_arM] leave_bndrs [] with m_asI[tau:1] theta: [Monad m_asI[tau:1]] cloneAnonMetaTyVar a_asK[tau:1] cloneAnonMetaTyVar b_asL[tau:1] Instantiating all tyvars? True origin arising from a do statement type forall @a_arU @b_arV. m_asI[tau:1] a_arU -> m_asI[tau:1] b_arV -> m_asI[tau:1] b_arV theta [] leave_bndrs [] with a_asK[tau:1] b_asL[tau:1] theta: [] tcSkolemise tcSkolemise tcSubTypeDS_O arising from a do statement a type expected by the context m_asI[tau:1] b_asL[tau:1] Check{m_asz[tau:1] b_asC[tau:1]} tc_sub_type_ds ty_actual = m_asI[tau:1] b_asL[tau:1] ty_expected = m_asz[tau:1] b_asC[tau:1] deeply_instantiate final subst origin: arising from a do statement type: m_asI[tau:1] b_asL[tau:1] new type: m_asI[tau:1] b_asL[tau:1] subst: [TCvSubst In scope: InScope {m_asI b_asL} Type env: [] Co env: []] u_tys tclvl 1 m_asI[tau:1] b_asL[tau:1] ~ m_asz[tau:1] b_asC[tau:1] arising from a type equality m_asI[tau:1] b_asL[tau:1] ~ m_asz[tau:1] b_asC[tau:1] u_tys tclvl 1 m_asI[tau:1] ~ m_asz[tau:1] arising from a type equality m_asI[tau:1] b_asL[tau:1] ~ m_asz[tau:1] b_asC[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_asI[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asI[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asI[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asI[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asI[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_asI[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_asI[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 b_asL[tau:1] ~ b_asC[tau:1] arising from a type equality m_asI[tau:1] b_asL[tau:1] ~ m_asz[tau:1] b_asC[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from b_asL[tau:1] ~ b_as0[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from b_asL[tau:1] ~ b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok b_asL[tau:1] :: * b_as0[tau:1] :: * True <*>_N writeMetaTyVar b_asL[tau:1] :: * := b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a tcFunApp return :: forall (m :: * -> *) a. Monad m => a -> m a [()] Check{m_asI[tau:1] a_asK[tau:1]} cloneAnonMetaTyVar m_asM[tau:1] instCallConstraints [$dMonad_asN] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @m_arM. forall a. Monad m_arM => a -> m_arM a theta [Monad m_arM] leave_bndrs [] with m_asM[tau:1] theta: [Monad m_asM[tau:1]] cloneAnonMetaTyVar a_asO[tau:1] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @a_as2. a_as2 -> m_asM[tau:1] a_as2 theta [] leave_bndrs [] with a_asO[tau:1] theta: [] tcPolyExprNC Check{a_asO[tau:1]} tcSkolemise tcInferId () :: () tcCheckId () () Check{a_asO[tau:1]} tcWrapResult Actual: () Expected: Check{a_asO[tau:1]} tc_sub_type_ds ty_actual = () ty_expected = a_asO[tau:1] deeply_instantiate final subst origin: arising from a use of ‘()’ type: () new type: () subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] u_tys tclvl 1 () ~ a_asO[tau:1] arising from a type equality () ~ a_asO[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from a_asO[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_asO[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_asO[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_asO[tau:1] :: * := () u_tys yields no coercion tc_sub_type_ds ty_actual = m_asM[tau:1] a_asO[tau:1] ty_expected = m_asI[tau:1] a_asK[tau:1] deeply_instantiate final subst origin: arising from a use of ‘return’ type: m_asM[tau:1] a_asO[tau:1] new type: m_asM[tau:1] a_asO[tau:1] subst: [TCvSubst In scope: InScope {m_asM a_asO} Type env: [] Co env: []] u_tys tclvl 1 m_asM[tau:1] a_asO[tau:1] ~ m_asI[tau:1] a_asK[tau:1] arising from a type equality m_asM[tau:1] a_asO[tau:1] ~ m_asI[tau:1] a_asK[tau:1] u_tys tclvl 1 m_asM[tau:1] ~ m_asI[tau:1] arising from a type equality m_asM[tau:1] a_asO[tau:1] ~ m_asI[tau:1] a_asK[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_asM[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asM[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asM[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asM[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asM[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_asM[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_asM[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 a_asO[tau:1] ~ a_asK[tau:1] arising from a type equality m_asM[tau:1] a_asO[tau:1] ~ m_asI[tau:1] a_asK[tau:1] found filled tyvar a_asO[tau:1] :-> () u_tys tclvl 1 * ~ * arising from a kind equality arising from a_asK[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_asK[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_asK[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_asK[tau:1] :: * := () u_tys yields no coercion u_tys yields no coercion newOpenInferExpType asP False 1 tcInferId >> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b tcCheckId >> forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Infer{asP,1 False} tcWrapResult Actual: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b Expected: Infer{asP,1 False} newAnonMetaTyVar t_asQ[tau:1] u_tys tclvl 1 * ~ TYPE t_asQ[tau:1] arising from a type equality * ~ TYPE t_asQ[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ t_asQ[tau:1] arising from a type equality * ~ TYPE t_asQ[tau:1] u_tys tclvl 1 GHC.Types.RuntimeRep ~ GHC.Types.RuntimeRep arising from a kind equality arising from t_asQ[tau:1] ~ 'GHC.Types.LiftedRep u_tys yields no coercion uUnfilledVar2 ok t_asQ[tau:1] :: GHC.Types.RuntimeRep 'GHC.Types.LiftedRep :: GHC.Types.RuntimeRep True <GHC.Types.RuntimeRep>_N writeMetaTyVar t_asQ[tau:1] :: GHC.Types.RuntimeRep := 'GHC.Types.LiftedRep u_tys yields no coercion u_tys yields no coercion Filling ExpType asP := forall (m :: * -> *) a b. Monad m => m a -> m b -> m b cloneAnonMetaTyVar m_asR[tau:1] instCallConstraints [$dMonad_asS] Instantiating all tyvars? True origin arising from a do statement type forall @m_arM. forall a b. Monad m_arM => m_arM a -> m_arM b -> m_arM b theta [Monad m_arM] leave_bndrs [] with m_asR[tau:1] theta: [Monad m_asR[tau:1]] cloneAnonMetaTyVar a_asT[tau:1] cloneAnonMetaTyVar b_asU[tau:1] Instantiating all tyvars? True origin arising from a do statement type forall @a_arU @b_arV. m_asR[tau:1] a_arU -> m_asR[tau:1] b_arV -> m_asR[tau:1] b_arV theta [] leave_bndrs [] with a_asT[tau:1] b_asU[tau:1] theta: [] tcSkolemise tcSkolemise tcSubTypeDS_O arising from a do statement a type expected by the context m_asR[tau:1] b_asU[tau:1] Check{m_asI[tau:1] b_asL[tau:1]} tc_sub_type_ds ty_actual = m_asR[tau:1] b_asU[tau:1] ty_expected = m_asI[tau:1] b_asL[tau:1] deeply_instantiate final subst origin: arising from a do statement type: m_asR[tau:1] b_asU[tau:1] new type: m_asR[tau:1] b_asU[tau:1] subst: [TCvSubst In scope: InScope {m_asR b_asU} Type env: [] Co env: []] u_tys tclvl 1 m_asR[tau:1] b_asU[tau:1] ~ m_asI[tau:1] b_asL[tau:1] arising from a type equality m_asR[tau:1] b_asU[tau:1] ~ m_asI[tau:1] b_asL[tau:1] u_tys tclvl 1 m_asR[tau:1] ~ m_asI[tau:1] arising from a type equality m_asR[tau:1] b_asU[tau:1] ~ m_asI[tau:1] b_asL[tau:1] u_tys tclvl 1 * -> * ~ * -> * arising from a kind equality arising from m_asR[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asR[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asR[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys tclvl 1 * ~ * arising from a kind equality arising from m_asR[tau:1] ~ m_arX[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from m_asR[tau:1] ~ m_arX[tau:1] u_tys yields no coercion u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok m_asR[tau:1] :: * -> * m_arX[tau:1] :: * -> * True <* -> *>_N writeMetaTyVar m_asR[tau:1] :: * -> * := m_arX[tau:1] u_tys yields no coercion u_tys tclvl 1 b_asU[tau:1] ~ b_asL[tau:1] arising from a type equality m_asR[tau:1] b_asU[tau:1] ~ m_asI[tau:1] b_asL[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from b_asU[tau:1] ~ b_as0[tau:1] u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from b_asU[tau:1] ~ b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok b_asU[tau:1] :: * b_as0[tau:1] :: * True <*>_N writeMetaTyVar b_asU[tau:1] :: * := b_as0[tau:1] u_tys yields no coercion u_tys yields no coercion tcInferId return :: forall (m :: * -> *) a. Monad m => a -> m a tcFunApp return :: forall (m :: * -> *) a. Monad m => a -> m a [()] Check{m_asR[tau:1] a_asT[tau:1]} cloneAnonMetaTyVar m_asV[tau:1] instCallConstraints [$dMonad_asW] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @m_arM. forall a. Monad m_arM => a -> m_arM a theta [Monad m_arM] leave_bndrs [] with m_asV[tau:1] theta: [Monad m_asV[tau:1]] cloneAnonMetaTyVar a_asX[tau:1] Instantiating all tyvars? True origin arising from a use of ‘return’ type forall @a_as2. a_as2 -> m_asV[tau:1] a_as2 theta [] leave_bndrs [] with a_asX[tau:1] theta: [] tcPolyExprNC Check{a_asX[tau:1]} tcSkolemise tcInferId () :: () tcCheckId () () Check{a_asX[tau:1]} tcWrapResult Actual: () Expected: Check{a_asX[tau:1]} tc_sub_type_ds ty_actual = () ty_expected = a_asX[tau:1] deeply_instantiate final subst origin: arising from a use of ‘()’ type: () new type: () subst: [TCvSubst In scope: InScope {} Type env: [] Co env: []] u_tys tclvl 1 () ~ a_asX[tau:1] arising from a type equality () ~ a_asX[tau:1] u_tys tclvl 1 * ~ * arising from a kind equality arising from a_asX[tau:1] ~ () u_tys tclvl 1 'GHC.Types.LiftedRep ~ 'GHC.Types.LiftedRep arising from a kind equality arising from a_asX[tau:1] ~ () u_tys yields no coercion u_tys yields no coercion uUnfilledVar2 ok a_asX[tau:1] :: * () :: * True <*>_N writeMetaTyVar a_asX[tau:1] :: * := () u_tys yields no coercion tc_sub_type_ds ty_actual = m_asV[tau:1] a_asX[tau:1] ty_expected = m_asR[tau:1] a_asT[tau:1] deeply_instantiate final subst origin: arising from a use of ‘return’ type: m_asV[tau:1] a_asX[tau:1] new type: m_asV[tau:1] a_asX[tau:1] subst: [TCvSubst In scope: InScope {m_asV a_asX} Type env: [] This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,2000 @@ 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 * ~ *