Skip to content

Instantly share code, notes, and snippets.

@andrewthad
Created February 24, 2020 19:01
Show Gist options
  • Select an option

  • Save andrewthad/8dbe182a796bcb4d94106c80d8b350b5 to your computer and use it in GitHub Desktop.

Select an option

Save andrewthad/8dbe182a796bcb4d94106c80d8b350b5 to your computer and use it in GitHub Desktop.

Revisions

  1. andrewthad created this gist Feb 24, 2020.
    2,000 changes: 2,000 additions & 0 deletions T9020-ghc-882.dump.txt
    Original 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: []
    2,000 changes: 2,000 additions & 0 deletions T9020-ghc-boxedrep.dump.txt
    Original 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
    * ~ *