Skip to content

Instantly share code, notes, and snippets.

@Lysxia
Created February 16, 2018 14:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Lysxia/34684c9ca9fe4772ea38a5065414f542 to your computer and use it in GitHub Desktop.
Save Lysxia/34684c9ca9fe4772ea38a5065414f542 to your computer and use it in GitHub Desktop.
==================== Tidy Core ====================
2018-02-16 13:58:15.651609941 UTC
Result size of Tidy Core = {terms: 277, types: 955, coercions: 640}
-- RHS size: {terms: 1, types: 0, coercions: 22}
K.$fMonadTransStateT_$clift
:: forall s_a4sc (m_a4id :: * -> *) a_a4ie.
Monad m_a4id =>
m_a4id a_a4ie -> StateT s_a4sc m_a4id a_a4ie
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(A,1*C1(C1(U)),A,C(U),A)><L,U><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= Control.Monad.Trans.State.Strict.$fMonadTransStateT_$clift
`cast` (forall (s_a4sc :: <*>_N).
forall (m_a4sg :: <* -> *>_N).
forall (a_a4sh :: <*>_N).
<Monad m_a4sg>_R
-> <m_a4sg a_a4sh>_R
-> Sym K.N:StateT[0] <s_a4sc>_N <m_a4sg>_N <a_a4sh>_N
:: ((forall s_a4sc (m_a4sg :: * -> *) a_a4sh.
Monad m_a4sg =>
m_a4sg a_a4sh -> S.StateT s_a4sc m_a4sg a_a4sh) :: *)
~R#
((forall s_a4sc (m_a4sg :: * -> *) a_a4sh.
Monad m_a4sg =>
m_a4sg a_a4sh -> StateT s_a4sc m_a4sg a_a4sh) :: *))}]
K.$fMonadTransStateT_$clift =
Control.Monad.Trans.State.Strict.$fMonadTransStateT_$clift
`cast` (forall (s_a4sc :: <*>_N).
forall (m_a4sg :: <* -> *>_N).
forall (a_a4sh :: <*>_N).
<Monad m_a4sg>_R
-> <m_a4sg a_a4sh>_R
-> Sym K.N:StateT[0] <s_a4sc>_N <m_a4sg>_N <a_a4sh>_N
:: ((forall s_a4sc (m_a4sg :: * -> *) a_a4sh.
Monad m_a4sg =>
m_a4sg a_a4sh -> S.StateT s_a4sc m_a4sg a_a4sh) :: *)
~R#
((forall s_a4sc (m_a4sg :: * -> *) a_a4sh.
Monad m_a4sg =>
m_a4sg a_a4sh -> StateT s_a4sc m_a4sg a_a4sh) :: *))
-- RHS size: {terms: 1, types: 0, coercions: 27}
K.$fMonadTransStateT [InlPrag=INLINE (sat-args=0)]
:: forall s_a4lK. MonadTrans (StateT s_a4lK)
[GblId[DFunId(nt)],
Arity=3,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(A,1*C1(C1(U)),A,C(U),A)><L,U><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=False,boring_ok=True)
Tmpl= K.$fMonadTransStateT_$clift
`cast` (forall (s_X4sF :: <*>_N).
Sym (Control.Monad.Trans.Class.N:MonadTrans[0] <StateT s_X4sF>_N)
:: ((forall s_X4sF (m_a4id :: * -> *) a_a4ie.
Monad m_a4id =>
m_a4id a_a4ie -> StateT s_X4sF m_a4id a_a4ie) :: *)
~R#
((forall s_X4sF. MonadTrans (StateT s_X4sF)) :: Constraint))}]
K.$fMonadTransStateT =
Control.Monad.Trans.State.Strict.$fMonadTransStateT_$clift
`cast` (forall (s_a4sc :: <*>_N).
(forall (m_a4sg :: <* -> *>_N).
forall (a_a4sh :: <*>_N).
<Monad m_a4sg>_R
-> <m_a4sg a_a4sh>_R
-> Sym K.N:StateT[0] <s_a4sc>_N <m_a4sg>_N <a_a4sh>_N)
; Sym (Control.Monad.Trans.Class.N:MonadTrans[0] <StateT s_a4sc>_N)
:: ((forall s_a4sc (m_a4sg :: * -> *) a_a4sh.
Monad m_a4sg =>
m_a4sg a_a4sh -> S.StateT s_a4sc m_a4sg a_a4sh) :: *)
~R#
((forall s_a4sc. MonadTrans (StateT s_a4sc)) :: Constraint))
-- RHS size: {terms: 22, types: 44, coercions: 24}
K.$fPrimMonadStateT_$cprimitive [InlPrag=INLINE (sat-args=1)]
:: forall (m_a4t5 :: * -> *) s_a4t6.
PrimMonad m_a4t5 =>
forall a_a4tf.
(GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5))
-> (# GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5)),
a_a4tf #))
-> StateT s_a4t6 m_a4t5 a_a4tf
[GblId,
Arity=2,
Caf=NoCafRefs,
Str=DmdType <L,U(1*U,1*C1(U))><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=2,unsat_ok=False,boring_ok=False)
Tmpl= \ (@ (m_a4t5 :: * -> *))
(@ s_a4t6)
($dPrimMonad_a4t7 :: PrimMonad m_a4t5)
(@ a_a4tg)
(eta_B1 [Occ=Once]
:: GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5))
-> (# GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5)),
a_a4tg #)) ->
K.$fMonadTransStateT_$clift
@ s_a4t6
@ m_a4t5
@ a_a4tg
(Control.Monad.Primitive.$p1PrimMonad @ m_a4t5 $dPrimMonad_a4t7)
(primitive
@ m_a4t5
$dPrimMonad_a4t7
@ a_a4tg
(eta_B1
`cast` ((GHC.Prim.State#
(K.D:R:PrimStateStateT[0] <m_a4t5>_N <s_a4t6>_N))_R
-> (# (GHC.Prim.State#
(K.D:R:PrimStateStateT[0] <m_a4t5>_N <s_a4t6>_N))_R,
<a_a4tg>_R #)_R
:: ((GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5))
-> (# GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5)),
a_a4tg #)) :: *)
~R#
((GHC.Prim.State# (PrimState m_a4t5)
-> (# GHC.Prim.State# (PrimState m_a4t5), a_a4tg #)) :: *))))}]
K.$fPrimMonadStateT_$cprimitive =
\ (@ (m_a4t5 :: * -> *))
(@ s_a4t6)
($dPrimMonad_a4t7 :: PrimMonad m_a4t5)
(@ a_a4tf)
(eta_B1
:: GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5))
-> (# GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5)),
a_a4tf #)) ->
let {
$dMonad_a5qV [Dmd=<L,U(U,C(C(U)),U,C(U),U)>] :: Monad m_a4t5
[LclId, Str=DmdType]
$dMonad_a5qV =
Control.Monad.Primitive.$p1PrimMonad @ m_a4t5 $dPrimMonad_a4t7 } in
let {
m1_a5qW :: m_a4t5 a_a4tf
[LclId, Str=DmdType]
m1_a5qW =
primitive
@ m_a4t5
$dPrimMonad_a4t7
@ a_a4tf
(eta_B1
`cast` ((GHC.Prim.State#
(K.D:R:PrimStateStateT[0] <m_a4t5>_N <s_a4t6>_N))_R
-> (# (GHC.Prim.State#
(K.D:R:PrimStateStateT[0] <m_a4t5>_N <s_a4t6>_N))_R,
<a_a4tf>_R #)_R
:: ((GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5))
-> (# GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5)),
a_a4tf #)) :: *)
~R#
((GHC.Prim.State# (PrimState m_a4t5)
-> (# GHC.Prim.State# (PrimState m_a4t5), a_a4tf #)) :: *))) } in
(\ (s1_a5qY :: s_a4t6) ->
>>=
@ m_a4t5
$dMonad_a5qV
@ a_a4tf
@ (a_a4tf, s_a4t6)
m1_a5qW
(\ (a1_a5qZ :: a_a4tf) ->
return
@ m_a4t5 $dMonad_a5qV @ (a_a4tf, s_a4t6) (a1_a5qZ, s1_a5qY)))
`cast` (Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_a4t6>_N <m_a4t5>_R <a_a4tf>_N)
; Sym K.N:StateT[0] <s_a4t6>_N <m_a4t5>_N <a_a4tf>_N
:: ((s_a4t6 -> m_a4t5 (a_a4tf, s_a4t6)) :: *)
~R#
(StateT s_a4t6 m_a4t5 a_a4tf :: *))
-- RHS size: {terms: 6, types: 13, coercions: 0}
K.$fMonadStateT1
:: forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4rL. String -> S.StateT s_a4pN m_a4pO a_a4rL
[GblId,
Arity=2,
Caf=NoCafRefs,
Str=DmdType <L,U(A,A,A,A,C(U))>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
Tmpl= \ (@ s_a4pN)
(@ (m_a4pO :: * -> *))
($dMonad_a4pP [Occ=Once] :: Monad m_a4pO)
(@ a_a4rL)
(eta_B1 [Occ=Once] :: String) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$cfail
@ m_a4pO @ s_a4pN $dMonad_a4pP @ a_a4rL eta_B1}]
K.$fMonadStateT1 =
\ (@ s_a4pN)
(@ (m_a4pO :: * -> *))
($dMonad_a4pP :: Monad m_a4pO)
(@ a_a4rL) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$cfail
@ m_a4pO @ s_a4pN $dMonad_a4pP @ a_a4rL
-- RHS size: {terms: 1, types: 0, coercions: 22}
K.$fMonadStateT_$cfail
:: forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4he. String -> StateT s_a4pN m_a4pO a_a4he
[GblId,
Arity=2,
Caf=NoCafRefs,
Str=DmdType <L,U(A,A,A,A,C(U))>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fMonadStateT1
`cast` (forall (s_a4pN :: <*>_N).
forall (m_a4pO :: <* -> *>_N).
<Monad m_a4pO>_R
-> forall (a_a4rL :: <*>_N).
<[Char]>_R -> Sym K.N:StateT[0] <s_a4pN>_N <m_a4pO>_N <a_a4rL>_N
:: ((forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4rL. [Char] -> S.StateT s_a4pN m_a4pO a_a4rL) :: *)
~R#
((forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4rL. [Char] -> StateT s_a4pN m_a4pO a_a4rL) :: *))}]
K.$fMonadStateT_$cfail =
K.$fMonadStateT1
`cast` (forall (s_a4pN :: <*>_N).
forall (m_a4pO :: <* -> *>_N).
<Monad m_a4pO>_R
-> forall (a_a4rL :: <*>_N).
<[Char]>_R -> Sym K.N:StateT[0] <s_a4pN>_N <m_a4pO>_N <a_a4rL>_N
:: ((forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4rL. [Char] -> S.StateT s_a4pN m_a4pO a_a4rL) :: *)
~R#
((forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4rL. [Char] -> StateT s_a4pN m_a4pO a_a4rL) :: *))
-- RHS size: {terms: 6, types: 13, coercions: 0}
K.$fMonadStateT2
:: forall s_X4qo (m_X4qq :: * -> *).
Monad m_X4qq =>
forall a_a4rj. a_a4rj -> s_X4qo -> m_X4qq (a_a4rj, s_X4qo)
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(A,A,A,C(U),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
Tmpl= \ (@ s_X4qo)
(@ (m_X4qq :: * -> *))
($dMonad_X4qs [Occ=Once] :: Monad m_X4qq)
(@ a_a4rj)
(eta_B2 [Occ=Once] :: a_a4rj)
(eta1_B1 [Occ=Once] :: s_X4qo) ->
Control.Monad.Trans.State.Strict.$fMonadStateT1
@ m_X4qq @ s_X4qo $dMonad_X4qs @ a_a4rj eta_B2 eta1_B1}]
K.$fMonadStateT2 =
\ (@ s_X4qo)
(@ (m_X4qq :: * -> *))
($dMonad_X4qs :: Monad m_X4qq)
(@ a_a4rj) ->
Control.Monad.Trans.State.Strict.$fMonadStateT1
@ m_X4qq @ s_X4qo $dMonad_X4qs @ a_a4rj
-- RHS size: {terms: 1, types: 0, coercions: 27}
K.$fMonadStateT_$creturn
:: forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4hc. a_a4hc -> StateT s_a4pN m_a4pO a_a4hc
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(A,A,A,C(U),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fMonadStateT2
`cast` (forall (s_X4rg :: <*>_N).
forall (m_X4rj :: <* -> *>_N).
<Monad m_X4rj>_R
-> forall (a_X4sd :: <*>_N).
<a_X4sd>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4rg>_N <m_X4rj>_R <a_X4sd>_N)
; Sym K.N:StateT[0] <s_X4rg>_N <m_X4rj>_N <a_X4sd>_N
:: ((forall s_X4rg (m_X4rj :: * -> *).
Monad m_X4rj =>
forall a_X4sd. a_X4sd -> s_X4rg -> m_X4rj (a_X4sd, s_X4rg)) :: *)
~R#
((forall s_X4rg (m_X4rj :: * -> *).
Monad m_X4rj =>
forall a_X4sd. a_X4sd -> StateT s_X4rg m_X4rj a_X4sd) :: *))}]
K.$fMonadStateT_$creturn =
K.$fMonadStateT2
`cast` (forall (s_X4rg :: <*>_N).
forall (m_X4rj :: <* -> *>_N).
<Monad m_X4rj>_R
-> forall (a_X4sd :: <*>_N).
<a_X4sd>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4rg>_N <m_X4rj>_R <a_X4sd>_N)
; Sym K.N:StateT[0] <s_X4rg>_N <m_X4rj>_N <a_X4sd>_N
:: ((forall s_X4rg (m_X4rj :: * -> *).
Monad m_X4rj =>
forall a_X4sd. a_X4sd -> s_X4rg -> m_X4rj (a_X4sd, s_X4rg)) :: *)
~R#
((forall s_X4rg (m_X4rj :: * -> *).
Monad m_X4rj =>
forall a_X4sd. a_X4sd -> StateT s_X4rg m_X4rj a_X4sd) :: *))
-- RHS size: {terms: 7, types: 16, coercions: 0}
K.$fMonadStateT3
:: forall s_X4qu (m_X4qw :: * -> *).
Monad m_X4qw =>
forall a_a4qF b_a4qG.
S.StateT s_X4qu m_X4qw a_a4qF
-> S.StateT s_X4qu m_X4qw b_a4qG -> S.StateT s_X4qu m_X4qw b_a4qG
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
Tmpl= \ (@ s_X4qu)
(@ (m_X4qw :: * -> *))
($dMonad_X4qy [Occ=Once] :: Monad m_X4qw)
(@ a_a4qF)
(@ b_a4qG)
(eta_B2 [Occ=Once] :: S.StateT s_X4qu m_X4qw a_a4qF)
(eta1_B1 [Occ=Once] :: S.StateT s_X4qu m_X4qw b_a4qG) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$c>>
@ m_X4qw @ s_X4qu $dMonad_X4qy @ a_a4qF @ b_a4qG eta_B2 eta1_B1}]
K.$fMonadStateT3 =
\ (@ s_X4qu)
(@ (m_X4qw :: * -> *))
($dMonad_X4qy :: Monad m_X4qw)
(@ a_a4qF)
(@ b_a4qG) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$c>>
@ m_X4qw @ s_X4qu $dMonad_X4qy @ a_a4qF @ b_a4qG
-- RHS size: {terms: 1, types: 0, coercions: 34}
K.$fMonadStateT_$c>>
:: forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4h9 b_a4ha.
StateT s_a4pN m_a4pO a_a4h9
-> StateT s_a4pN m_a4pO b_a4ha -> StateT s_a4pN m_a4pO b_a4ha
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fMonadStateT3
`cast` (forall (s_X4qu :: <*>_N).
forall (m_X4qw :: <* -> *>_N).
<Monad m_X4qw>_R
-> forall (a_a4qF :: <*>_N).
forall (b_a4qG :: <*>_N).
Sym K.N:StateT[0] <s_X4qu>_N <m_X4qw>_N <a_a4qF>_N
-> Sym K.N:StateT[0] <s_X4qu>_N <m_X4qw>_N <b_a4qG>_N
-> Sym K.N:StateT[0] <s_X4qu>_N <m_X4qw>_N <b_a4qG>_N
:: ((forall s_X4qu (m_X4qw :: * -> *).
Monad m_X4qw =>
forall a_a4qF b_a4qG.
S.StateT s_X4qu m_X4qw a_a4qF
-> S.StateT s_X4qu m_X4qw b_a4qG
-> S.StateT s_X4qu m_X4qw b_a4qG) :: *)
~R#
((forall s_X4qu (m_X4qw :: * -> *).
Monad m_X4qw =>
forall a_a4qF b_a4qG.
StateT s_X4qu m_X4qw a_a4qF
-> StateT s_X4qu m_X4qw b_a4qG
-> StateT s_X4qu m_X4qw b_a4qG) :: *))}]
K.$fMonadStateT_$c>> =
K.$fMonadStateT3
`cast` (forall (s_X4qu :: <*>_N).
forall (m_X4qw :: <* -> *>_N).
<Monad m_X4qw>_R
-> forall (a_a4qF :: <*>_N).
forall (b_a4qG :: <*>_N).
Sym K.N:StateT[0] <s_X4qu>_N <m_X4qw>_N <a_a4qF>_N
-> Sym K.N:StateT[0] <s_X4qu>_N <m_X4qw>_N <b_a4qG>_N
-> Sym K.N:StateT[0] <s_X4qu>_N <m_X4qw>_N <b_a4qG>_N
:: ((forall s_X4qu (m_X4qw :: * -> *).
Monad m_X4qw =>
forall a_a4qF b_a4qG.
S.StateT s_X4qu m_X4qw a_a4qF
-> S.StateT s_X4qu m_X4qw b_a4qG
-> S.StateT s_X4qu m_X4qw b_a4qG) :: *)
~R#
((forall s_X4qu (m_X4qw :: * -> *).
Monad m_X4qw =>
forall a_a4qF b_a4qG.
StateT s_X4qu m_X4qw a_a4qF
-> StateT s_X4qu m_X4qw b_a4qG
-> StateT s_X4qu m_X4qw b_a4qG) :: *))
-- RHS size: {terms: 7, types: 16, coercions: 0}
K.$fMonadStateT4
:: forall s_X4qB (m_X4qD :: * -> *).
Monad m_X4qD =>
forall a_a4pX b_a4pY.
S.StateT s_X4qB m_X4qD a_a4pX
-> (a_a4pX -> S.StateT s_X4qB m_X4qD b_a4pY)
-> S.StateT s_X4qB m_X4qD b_a4pY
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <L,U(A,C(C1(U)),A,A,A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
Tmpl= (\ (@ s_X4qB)
(@ (m_X4qD :: * -> *))
($dMonad_X4qF [Occ=OnceL] :: Monad m_X4qD)
(@ a_a4pX)
(@ b_a4pY)
(eta_B3 [Occ=OnceL] :: S.StateT s_X4qB m_X4qD a_a4pX)
(eta1_B2 [Occ=OnceL!] :: a_a4pX -> S.StateT s_X4qB m_X4qD b_a4pY)
(eta2_B1 [Occ=Once] :: s_X4qB) ->
(($ @ 'GHC.Types.PtrRepLifted
@ (s_X4qB -> m_X4qD (b_a4pY, s_X4qB))
@ (S.StateT s_X4qB m_X4qD b_a4pY)
((\ (tpl_a5pk [Occ=Once] :: s_X4qB -> m_X4qD (b_a4pY, s_X4qB)) ->
tpl_a5pk)
`cast` (<s_X4qB -> m_X4qD (b_a4pY, s_X4qB)>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4qB>_N <m_X4qD>_R <b_a4pY>_N)
:: (((s_X4qB -> m_X4qD (b_a4pY, s_X4qB))
-> s_X4qB -> m_X4qD (b_a4pY, s_X4qB)) :: *)
~R#
(((s_X4qB -> m_X4qD (b_a4pY, s_X4qB))
-> S.StateT s_X4qB m_X4qD b_a4pY) :: *)))
(\ (s1_a5pl [Occ=Once] :: s_X4qB) ->
>>=
@ m_X4qD
$dMonad_X4qF
@ (a_a4pX, s_X4qB)
@ (b_a4pY, s_X4qB)
(S.runStateT @ s_X4qB @ m_X4qD @ a_a4pX eta_B3 s1_a5pl)
(\ (ds_a5pm [Occ=Once!] :: (a_a4pX, s_X4qB)) ->
case ds_a5pm
of _ [Occ=Dead] { (a1_a5pp [Occ=Once], s'_a5pq [Occ=Once]) ->
S.runStateT @ s_X4qB @ m_X4qD @ b_a4pY (eta1_B2 a1_a5pp) s'_a5pq
})))
`cast` (Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4qB>_N <m_X4qD>_R <b_a4pY>_N
:: (S.StateT s_X4qB m_X4qD b_a4pY :: *)
~R#
((s_X4qB -> m_X4qD (b_a4pY, s_X4qB)) :: *)))
eta2_B1)
`cast` (forall (s_X4qB :: <*>_N).
forall (m_X4qD :: <* -> *>_N).
<Monad m_X4qD>_R
-> forall (a_a4pX :: <*>_N).
forall (b_a4pY :: <*>_N).
<S.StateT s_X4qB m_X4qD a_a4pX>_R
-> <a_a4pX -> S.StateT s_X4qB m_X4qD b_a4pY>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4qB>_N <m_X4qD>_R <b_a4pY>_N)
:: ((forall s_X4qB (m_X4qD :: * -> *).
Monad m_X4qD =>
forall a_a4pX b_a4pY.
S.StateT s_X4qB m_X4qD a_a4pX
-> (a_a4pX -> S.StateT s_X4qB m_X4qD b_a4pY)
-> s_X4qB
-> m_X4qD (b_a4pY, s_X4qB)) :: *)
~R#
((forall s_X4qB (m_X4qD :: * -> *).
Monad m_X4qD =>
forall a_a4pX b_a4pY.
S.StateT s_X4qB m_X4qD a_a4pX
-> (a_a4pX -> S.StateT s_X4qB m_X4qD b_a4pY)
-> S.StateT s_X4qB m_X4qD b_a4pY) :: *))}]
K.$fMonadStateT4 =
\ (@ s_X4qB)
(@ (m_X4qD :: * -> *))
($dMonad_X4qF :: Monad m_X4qD)
(@ a_a4pX)
(@ b_a4pY) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$c>>=
@ m_X4qD @ s_X4qB $dMonad_X4qF @ a_a4pX @ b_a4pY
-- RHS size: {terms: 1, types: 0, coercions: 36}
K.$fMonadStateT_$c>>=
:: forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4h6 b_a4h7.
StateT s_a4pN m_a4pO a_a4h6
-> (a_a4h6 -> StateT s_a4pN m_a4pO b_a4h7)
-> StateT s_a4pN m_a4pO b_a4h7
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <L,U(A,C(C1(U)),A,A,A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fMonadStateT4
`cast` (forall (s_X4qB :: <*>_N).
forall (m_X4qD :: <* -> *>_N).
<Monad m_X4qD>_R
-> forall (a_a4pX :: <*>_N).
forall (b_a4pY :: <*>_N).
Sym K.N:StateT[0] <s_X4qB>_N <m_X4qD>_N <a_a4pX>_N
-> (<a_a4pX>_R
-> Sym K.N:StateT[0] <s_X4qB>_N <m_X4qD>_N <b_a4pY>_N)
-> Sym K.N:StateT[0] <s_X4qB>_N <m_X4qD>_N <b_a4pY>_N
:: ((forall s_X4qB (m_X4qD :: * -> *).
Monad m_X4qD =>
forall a_a4pX b_a4pY.
S.StateT s_X4qB m_X4qD a_a4pX
-> (a_a4pX -> S.StateT s_X4qB m_X4qD b_a4pY)
-> S.StateT s_X4qB m_X4qD b_a4pY) :: *)
~R#
((forall s_X4qB (m_X4qD :: * -> *).
Monad m_X4qD =>
forall a_a4pX b_a4pY.
StateT s_X4qB m_X4qD a_a4pX
-> (a_a4pX -> StateT s_X4qB m_X4qD b_a4pY)
-> StateT s_X4qB m_X4qD b_a4pY) :: *))}]
K.$fMonadStateT_$c>>= =
K.$fMonadStateT4
`cast` (forall (s_X4qB :: <*>_N).
forall (m_X4qD :: <* -> *>_N).
<Monad m_X4qD>_R
-> forall (a_a4pX :: <*>_N).
forall (b_a4pY :: <*>_N).
Sym K.N:StateT[0] <s_X4qB>_N <m_X4qD>_N <a_a4pX>_N
-> (<a_a4pX>_R
-> Sym K.N:StateT[0] <s_X4qB>_N <m_X4qD>_N <b_a4pY>_N)
-> Sym K.N:StateT[0] <s_X4qB>_N <m_X4qD>_N <b_a4pY>_N
:: ((forall s_X4qB (m_X4qD :: * -> *).
Monad m_X4qD =>
forall a_a4pX b_a4pY.
S.StateT s_X4qB m_X4qD a_a4pX
-> (a_a4pX -> S.StateT s_X4qB m_X4qD b_a4pY)
-> S.StateT s_X4qB m_X4qD b_a4pY) :: *)
~R#
((forall s_X4qB (m_X4qD :: * -> *).
Monad m_X4qD =>
forall a_a4pX b_a4pY.
StateT s_X4qB m_X4qD a_a4pX
-> (a_a4pX -> StateT s_X4qB m_X4qD b_a4pY)
-> StateT s_X4qB m_X4qD b_a4pY) :: *))
-- RHS size: {terms: 16, types: 27, coercions: 0}
K.$fApplicativeStateT1
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4pa b_a4pb.
S.StateT s_a4nc m_a4nd a_a4pa
-> S.StateT s_a4nc m_a4nd b_a4pb
-> s_a4nc
-> m_a4nd (a_a4pa, s_a4nc)
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(1*U(1*U(1*C1(C1(U)),A),A,A,A,A),C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=4,unsat_ok=True,boring_ok=False)
Tmpl= \ (@ s_a4nc)
(@ (m_a4nd :: * -> *))
($dMonad_a4ne :: Monad m_a4nd)
(@ a_a4pa)
(@ b_a4pb)
(eta_B3 [Occ=Once] :: S.StateT s_a4nc m_a4nd a_a4pa)
(eta1_B2 [Occ=Once] :: S.StateT s_a4nc m_a4nd b_a4pb)
(eta2_B1 [Occ=Once] :: s_a4nc) ->
Control.Monad.Trans.State.Strict.$fApplicativeStateT1
@ m_a4nd
@ s_a4nc
(GHC.Base.$p1Applicative
@ m_a4nd (GHC.Base.$p1Monad @ m_a4nd $dMonad_a4ne))
$dMonad_a4ne
@ a_a4pa
@ b_a4pb
eta_B3
eta1_B2
eta2_B1}]
K.$fApplicativeStateT1 =
\ (@ s_a4nc)
(@ (m_a4nd :: * -> *))
($dMonad_a4ne :: Monad m_a4nd)
(@ a_a4pa)
(@ b_a4pb)
(eta_B3 :: S.StateT s_a4nc m_a4nd a_a4pa)
(eta1_B2 :: S.StateT s_a4nc m_a4nd b_a4pb)
(eta2_B1 :: s_a4nc) ->
Control.Monad.Trans.State.Strict.$fApplicativeStateT1
@ m_a4nd
@ s_a4nc
(GHC.Base.$p1Applicative
@ m_a4nd (GHC.Base.$p1Monad @ m_a4nd $dMonad_a4ne))
$dMonad_a4ne
@ a_a4pa
@ b_a4pb
eta_B3
eta1_B2
eta2_B1
-- RHS size: {terms: 1, types: 0, coercions: 40}
K.$fApplicativeStateT_$c<*
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4d9 b_a4da.
StateT s_a4nc m_a4nd a_a4d9
-> StateT s_a4nc m_a4nd b_a4da -> StateT s_a4nc m_a4nd a_a4d9
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(1*U(1*U(1*C1(C1(U)),A),A,A,A,A),C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fApplicativeStateT1
`cast` (forall (s_a4nc :: <*>_N).
forall (m_a4nd :: <* -> *>_N).
<Monad m_a4nd>_R
-> forall (a_a4pa :: <*>_N).
forall (b_a4pb :: <*>_N).
Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <a_a4pa>_N
-> Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <b_a4pb>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_a4nc>_N <m_a4nd>_R <a_a4pa>_N)
; Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <a_a4pa>_N
:: ((forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4pa b_a4pb.
S.StateT s_a4nc m_a4nd a_a4pa
-> S.StateT s_a4nc m_a4nd b_a4pb
-> s_a4nc
-> m_a4nd (a_a4pa, s_a4nc)) :: *)
~R#
((forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4pa b_a4pb.
StateT s_a4nc m_a4nd a_a4pa
-> StateT s_a4nc m_a4nd b_a4pb
-> StateT s_a4nc m_a4nd a_a4pa) :: *))}]
K.$fApplicativeStateT_$c<* =
K.$fApplicativeStateT1
`cast` (forall (s_a4nc :: <*>_N).
forall (m_a4nd :: <* -> *>_N).
<Monad m_a4nd>_R
-> forall (a_a4pa :: <*>_N).
forall (b_a4pb :: <*>_N).
Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <a_a4pa>_N
-> Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <b_a4pb>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_a4nc>_N <m_a4nd>_R <a_a4pa>_N)
; Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <a_a4pa>_N
:: ((forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4pa b_a4pb.
S.StateT s_a4nc m_a4nd a_a4pa
-> S.StateT s_a4nc m_a4nd b_a4pb
-> s_a4nc
-> m_a4nd (a_a4pa, s_a4nc)) :: *)
~R#
((forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4pa b_a4pb.
StateT s_a4nc m_a4nd a_a4pa
-> StateT s_a4nc m_a4nd b_a4pb
-> StateT s_a4nc m_a4nd a_a4pa) :: *))
-- RHS size: {terms: 16, types: 27, coercions: 0}
K.$fApplicativeStateT2
:: forall s_X4oe (m_X4og :: * -> *).
Monad m_X4og =>
forall a_a4ow b_a4ox.
S.StateT s_X4oe m_X4og a_a4ow
-> S.StateT s_X4oe m_X4og b_a4ox
-> s_X4oe
-> m_X4og (b_a4ox, s_X4oe)
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(1*U(1*U(1*C1(C1(U)),A),A,A,A,A),C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=4,unsat_ok=True,boring_ok=False)
Tmpl= \ (@ s_X4oe)
(@ (m_X4og :: * -> *))
($dMonad_X4oi :: Monad m_X4og)
(@ a_a4ow)
(@ b_a4ox)
(eta_X16 [Occ=Once] :: S.StateT s_X4oe m_X4og a_a4ow)
(eta1_X2a [Occ=Once] :: S.StateT s_X4oe m_X4og b_a4ox)
(eta2_B1 [Occ=Once] :: s_X4oe) ->
Control.Monad.Trans.State.Strict.$fApplicativeStateT3
@ m_X4og
@ s_X4oe
(GHC.Base.$p1Applicative
@ m_X4og (GHC.Base.$p1Monad @ m_X4og $dMonad_X4oi))
$dMonad_X4oi
@ a_a4ow
@ b_a4ox
eta_X16
eta1_X2a
eta2_B1}]
K.$fApplicativeStateT2 =
\ (@ s_X4oe)
(@ (m_X4og :: * -> *))
($dMonad_X4oi :: Monad m_X4og)
(@ a_a4ow)
(@ b_a4ox)
(eta_X16 :: S.StateT s_X4oe m_X4og a_a4ow)
(eta1_X2a :: S.StateT s_X4oe m_X4og b_a4ox)
(eta2_B1 :: s_X4oe) ->
Control.Monad.Trans.State.Strict.$fApplicativeStateT3
@ m_X4og
@ s_X4oe
(GHC.Base.$p1Applicative
@ m_X4og (GHC.Base.$p1Monad @ m_X4og $dMonad_X4oi))
$dMonad_X4oi
@ a_a4ow
@ b_a4ox
eta_X16
eta1_X2a
eta2_B1
-- RHS size: {terms: 1, types: 0, coercions: 40}
K.$fApplicativeStateT_$c*>
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4d6 b_a4d7.
StateT s_a4nc m_a4nd a_a4d6
-> StateT s_a4nc m_a4nd b_a4d7 -> StateT s_a4nc m_a4nd b_a4d7
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(1*U(1*U(1*C1(C1(U)),A),A,A,A,A),C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fApplicativeStateT2
`cast` (forall (s_X4oe :: <*>_N).
forall (m_X4og :: <* -> *>_N).
<Monad m_X4og>_R
-> forall (a_a4ow :: <*>_N).
forall (b_a4ox :: <*>_N).
Sym K.N:StateT[0] <s_X4oe>_N <m_X4og>_N <a_a4ow>_N
-> Sym K.N:StateT[0] <s_X4oe>_N <m_X4og>_N <b_a4ox>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4oe>_N <m_X4og>_R <b_a4ox>_N)
; Sym K.N:StateT[0] <s_X4oe>_N <m_X4og>_N <b_a4ox>_N
:: ((forall s_X4oe (m_X4og :: * -> *).
Monad m_X4og =>
forall a_a4ow b_a4ox.
S.StateT s_X4oe m_X4og a_a4ow
-> S.StateT s_X4oe m_X4og b_a4ox
-> s_X4oe
-> m_X4og (b_a4ox, s_X4oe)) :: *)
~R#
((forall s_X4oe (m_X4og :: * -> *).
Monad m_X4og =>
forall a_a4ow b_a4ox.
StateT s_X4oe m_X4og a_a4ow
-> StateT s_X4oe m_X4og b_a4ox
-> StateT s_X4oe m_X4og b_a4ox) :: *))}]
K.$fApplicativeStateT_$c*> =
K.$fApplicativeStateT2
`cast` (forall (s_X4oe :: <*>_N).
forall (m_X4og :: <* -> *>_N).
<Monad m_X4og>_R
-> forall (a_a4ow :: <*>_N).
forall (b_a4ox :: <*>_N).
Sym K.N:StateT[0] <s_X4oe>_N <m_X4og>_N <a_a4ow>_N
-> Sym K.N:StateT[0] <s_X4oe>_N <m_X4og>_N <b_a4ox>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4oe>_N <m_X4og>_R <b_a4ox>_N)
; Sym K.N:StateT[0] <s_X4oe>_N <m_X4og>_N <b_a4ox>_N
:: ((forall s_X4oe (m_X4og :: * -> *).
Monad m_X4og =>
forall a_a4ow b_a4ox.
S.StateT s_X4oe m_X4og a_a4ow
-> S.StateT s_X4oe m_X4og b_a4ox
-> s_X4oe
-> m_X4og (b_a4ox, s_X4oe)) :: *)
~R#
((forall s_X4oe (m_X4og :: * -> *).
Monad m_X4og =>
forall a_a4ow b_a4ox.
StateT s_X4oe m_X4og a_a4ow
-> StateT s_X4oe m_X4og b_a4ox
-> StateT s_X4oe m_X4og b_a4ox) :: *))
-- RHS size: {terms: 30, types: 62, coercions: 9}
K.$fApplicativeStateT3
:: forall s_X4ol (m_X4on :: * -> *).
Monad m_X4on =>
forall a_a4nO b_a4nP.
S.StateT s_X4ol m_X4on (a_a4nO -> b_a4nP)
-> S.StateT s_X4ol m_X4on a_a4nO
-> s_X4ol
-> m_X4on (b_a4nP, s_X4ol)
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=IF_ARGS [90 60 60 0] 220 0}]
K.$fApplicativeStateT3 =
\ (@ s_X4ol)
(@ (m_X4on :: * -> *))
($dMonad_X4op :: Monad m_X4on)
(@ a_a4nO)
(@ b_a4nP)
(eta_X1g :: S.StateT s_X4ol m_X4on (a_a4nO -> b_a4nP))
(eta1_X2u :: S.StateT s_X4ol m_X4on a_a4nO)
(eta2_B1 :: s_X4ol) ->
>>=
@ m_X4on
$dMonad_X4op
@ (a_a4nO -> b_a4nP, s_X4ol)
@ (b_a4nP, s_X4ol)
((eta_X1g
`cast` (Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4ol>_N <m_X4on>_R <a_a4nO -> b_a4nP>_N
:: (S.StateT s_X4ol m_X4on (a_a4nO -> b_a4nP) :: *)
~R#
((s_X4ol -> m_X4on (a_a4nO -> b_a4nP, s_X4ol)) :: *)))
eta2_B1)
(\ (ds2_a5pX :: (a_a4nO -> b_a4nP, s_X4ol)) ->
case ds2_a5pX of _ [Occ=Dead] { (f_a5q0, s'_a5q1) ->
>>=
@ m_X4on
$dMonad_X4op
@ (a_a4nO, s_X4ol)
@ (b_a4nP, s_X4ol)
((eta1_X2u
`cast` (Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4ol>_N <m_X4on>_R <a_a4nO>_N
:: (S.StateT s_X4ol m_X4on a_a4nO :: *)
~R#
((s_X4ol -> m_X4on (a_a4nO, s_X4ol)) :: *)))
s'_a5q1)
(\ (ds3_a5q3 :: (a_a4nO, s_X4ol)) ->
case ds3_a5q3 of _ [Occ=Dead] { (x_a5q6, s''_a5q7) ->
return
@ m_X4on $dMonad_X4op @ (b_a4nP, s_X4ol) (f_a5q0 x_a5q6, s''_a5q7)
})
})
-- RHS size: {terms: 1, types: 0, coercions: 41}
K.$fApplicativeStateT_$c<*>
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4d3 b_a4d4.
StateT s_a4nc m_a4nd (a_a4d3 -> b_a4d4)
-> StateT s_a4nc m_a4nd a_a4d3 -> StateT s_a4nc m_a4nd b_a4d4
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fApplicativeStateT3
`cast` (forall (s_X4ol :: <*>_N).
forall (m_X4on :: <* -> *>_N).
<Monad m_X4on>_R
-> forall (a_a4nO :: <*>_N).
forall (b_a4nP :: <*>_N).
Sym K.N:StateT[0] <s_X4ol>_N <m_X4on>_N <a_a4nO -> b_a4nP>_N
-> Sym K.N:StateT[0] <s_X4ol>_N <m_X4on>_N <a_a4nO>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4ol>_N <m_X4on>_R <b_a4nP>_N)
; Sym K.N:StateT[0] <s_X4ol>_N <m_X4on>_N <b_a4nP>_N
:: ((forall s_X4ol (m_X4on :: * -> *).
Monad m_X4on =>
forall a_a4nO b_a4nP.
S.StateT s_X4ol m_X4on (a_a4nO -> b_a4nP)
-> S.StateT s_X4ol m_X4on a_a4nO
-> s_X4ol
-> m_X4on (b_a4nP, s_X4ol)) :: *)
~R#
((forall s_X4ol (m_X4on :: * -> *).
Monad m_X4on =>
forall a_a4nO b_a4nP.
StateT s_X4ol m_X4on (a_a4nO -> b_a4nP)
-> StateT s_X4ol m_X4on a_a4nO
-> StateT s_X4ol m_X4on b_a4nP) :: *))}]
K.$fApplicativeStateT_$c<*> =
K.$fApplicativeStateT3
`cast` (forall (s_X4ol :: <*>_N).
forall (m_X4on :: <* -> *>_N).
<Monad m_X4on>_R
-> forall (a_a4nO :: <*>_N).
forall (b_a4nP :: <*>_N).
Sym K.N:StateT[0] <s_X4ol>_N <m_X4on>_N <a_a4nO -> b_a4nP>_N
-> Sym K.N:StateT[0] <s_X4ol>_N <m_X4on>_N <a_a4nO>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4ol>_N <m_X4on>_R <b_a4nP>_N)
; Sym K.N:StateT[0] <s_X4ol>_N <m_X4on>_N <b_a4nP>_N
:: ((forall s_X4ol (m_X4on :: * -> *).
Monad m_X4on =>
forall a_a4nO b_a4nP.
S.StateT s_X4ol m_X4on (a_a4nO -> b_a4nP)
-> S.StateT s_X4ol m_X4on a_a4nO
-> s_X4ol
-> m_X4on (b_a4nP, s_X4ol)) :: *)
~R#
((forall s_X4ol (m_X4on :: * -> *).
Monad m_X4on =>
forall a_a4nO b_a4nP.
StateT s_X4ol m_X4on (a_a4nO -> b_a4nP)
-> StateT s_X4ol m_X4on a_a4nO
-> StateT s_X4ol m_X4on b_a4nP) :: *))
-- RHS size: {terms: 11, types: 18, coercions: 0}
K.$fApplicativeStateT4
:: forall s_X4os (m_X4ou :: * -> *).
Monad m_X4ou =>
forall a_a4nm. a_a4nm -> s_X4os -> m_X4ou (a_a4nm, s_X4os)
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,U><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=3,unsat_ok=True,boring_ok=False)
Tmpl= \ (@ s_X4os)
(@ (m_X4ou :: * -> *))
($dMonad_X4ow [Occ=Once] :: Monad m_X4ou)
(@ a_a4nm)
(eta_X1o [Occ=Once] :: a_a4nm)
(eta1_B1 [Occ=Once] :: s_X4os) ->
return
@ m_X4ou $dMonad_X4ow @ (a_a4nm, s_X4os) (eta_X1o, eta1_B1)}]
K.$fApplicativeStateT4 =
\ (@ s_X4os)
(@ (m_X4ou :: * -> *))
($dMonad_X4ow :: Monad m_X4ou)
(@ a_a4nm)
(eta_X1o :: a_a4nm)
(eta1_B1 :: s_X4os) ->
return @ m_X4ou $dMonad_X4ow @ (a_a4nm, s_X4os) (eta_X1o, eta1_B1)
-- RHS size: {terms: 1, types: 0, coercions: 27}
K.$fApplicativeStateT_$cpure
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4d1. a_a4d1 -> StateT s_a4nc m_a4nd a_a4d1
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,U><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fApplicativeStateT4
`cast` (forall (s_X4os :: <*>_N).
forall (m_X4ou :: <* -> *>_N).
<Monad m_X4ou>_R
-> forall (a_a4nm :: <*>_N).
<a_a4nm>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4os>_N <m_X4ou>_R <a_a4nm>_N)
; Sym K.N:StateT[0] <s_X4os>_N <m_X4ou>_N <a_a4nm>_N
:: ((forall s_X4os (m_X4ou :: * -> *).
Monad m_X4ou =>
forall a_a4nm. a_a4nm -> s_X4os -> m_X4ou (a_a4nm, s_X4os)) :: *)
~R#
((forall s_X4os (m_X4ou :: * -> *).
Monad m_X4ou =>
forall a_a4nm. a_a4nm -> StateT s_X4os m_X4ou a_a4nm) :: *))}]
K.$fApplicativeStateT_$cpure =
K.$fApplicativeStateT4
`cast` (forall (s_X4os :: <*>_N).
forall (m_X4ou :: <* -> *>_N).
<Monad m_X4ou>_R
-> forall (a_a4nm :: <*>_N).
<a_a4nm>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4os>_N <m_X4ou>_R <a_a4nm>_N)
; Sym K.N:StateT[0] <s_X4os>_N <m_X4ou>_N <a_a4nm>_N
:: ((forall s_X4os (m_X4ou :: * -> *).
Monad m_X4ou =>
forall a_a4nm. a_a4nm -> s_X4os -> m_X4ou (a_a4nm, s_X4os)) :: *)
~R#
((forall s_X4os (m_X4ou :: * -> *).
Monad m_X4ou =>
forall a_a4nm. a_a4nm -> StateT s_X4os m_X4ou a_a4nm) :: *))
-- RHS size: {terms: 7, types: 16, coercions: 0}
K.$fFunctorStateT1
:: forall s_a4lL (m_a4lM :: * -> *).
Functor m_a4lM =>
forall a_a4mz b_a4mA.
a_a4mz
-> S.StateT s_a4lL m_a4lM b_a4mA
-> s_a4lL
-> m_a4lM (a_a4mz, s_a4lL)
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <L,U(C(C1(U)),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
Tmpl= \ (@ s_a4lL)
(@ (m_a4lM :: * -> *))
($dFunctor_a4lN [Occ=Once] :: Functor m_a4lM)
(@ a_a4mz)
(@ b_a4mA)
(eta_B3 [Occ=Once] :: a_a4mz)
(eta1_B2 [Occ=Once] :: S.StateT s_a4lL m_a4lM b_a4mA)
(eta2_B1 [Occ=Once] :: s_a4lL) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT1
@ m_a4lM
@ s_a4lL
$dFunctor_a4lN
@ a_a4mz
@ b_a4mA
eta_B3
eta1_B2
eta2_B1}]
K.$fFunctorStateT1 =
\ (@ s_a4lL)
(@ (m_a4lM :: * -> *))
($dFunctor_a4lN :: Functor m_a4lM)
(@ a_a4mz)
(@ b_a4mA) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT1
@ m_a4lM @ s_a4lL $dFunctor_a4lN @ a_a4mz @ b_a4mA
-- RHS size: {terms: 1, types: 0, coercions: 36}
K.$fFunctorStateT_$c<$
:: forall s_a4lL (m_a4lM :: * -> *).
Functor m_a4lM =>
forall a_a42e b_a42f.
a_a42e
-> StateT s_a4lL m_a4lM b_a42f -> StateT s_a4lL m_a4lM a_a42e
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <L,U(C(C1(U)),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fFunctorStateT1
`cast` (forall (s_X4n1 :: <*>_N).
forall (m_X4n3 :: <* -> *>_N).
<Functor m_X4n3>_R
-> forall (a_X4nR :: <*>_N).
forall (b_X4nT :: <*>_N).
<a_X4nR>_R
-> Sym K.N:StateT[0] <s_X4n1>_N <m_X4n3>_N <b_X4nT>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4n1>_N <m_X4n3>_R <a_X4nR>_N)
; Sym K.N:StateT[0] <s_X4n1>_N <m_X4n3>_N <a_X4nR>_N
:: ((forall s_X4n1 (m_X4n3 :: * -> *).
Functor m_X4n3 =>
forall a_X4nR b_X4nT.
a_X4nR
-> S.StateT s_X4n1 m_X4n3 b_X4nT
-> s_X4n1
-> m_X4n3 (a_X4nR, s_X4n1)) :: *)
~R#
((forall s_X4n1 (m_X4n3 :: * -> *).
Functor m_X4n3 =>
forall a_X4nR b_X4nT.
a_X4nR
-> StateT s_X4n1 m_X4n3 b_X4nT
-> StateT s_X4n1 m_X4n3 a_X4nR) :: *))}]
K.$fFunctorStateT_$c<$ =
K.$fFunctorStateT1
`cast` (forall (s_X4n1 :: <*>_N).
forall (m_X4n3 :: <* -> *>_N).
<Functor m_X4n3>_R
-> forall (a_X4nR :: <*>_N).
forall (b_X4nT :: <*>_N).
<a_X4nR>_R
-> Sym K.N:StateT[0] <s_X4n1>_N <m_X4n3>_N <b_X4nT>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4n1>_N <m_X4n3>_R <a_X4nR>_N)
; Sym K.N:StateT[0] <s_X4n1>_N <m_X4n3>_N <a_X4nR>_N
:: ((forall s_X4n1 (m_X4n3 :: * -> *).
Functor m_X4n3 =>
forall a_X4nR b_X4nT.
a_X4nR
-> S.StateT s_X4n1 m_X4n3 b_X4nT
-> s_X4n1
-> m_X4n3 (a_X4nR, s_X4n1)) :: *)
~R#
((forall s_X4n1 (m_X4n3 :: * -> *).
Functor m_X4n3 =>
forall a_X4nR b_X4nT.
a_X4nR
-> StateT s_X4n1 m_X4n3 b_X4nT
-> StateT s_X4n1 m_X4n3 a_X4nR) :: *))
-- RHS size: {terms: 7, types: 16, coercions: 0}
K.$fFunctorStateT2
:: forall s_X4ne (m_X4ng :: * -> *).
Functor m_X4ng =>
forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> S.StateT s_X4ne m_X4ng a_a4lR -> S.StateT s_X4ne m_X4ng b_a4lS
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(C(U),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
Tmpl= \ (@ s_X4ne)
(@ (m_X4ng :: * -> *))
($dFunctor_X4ni [Occ=Once] :: Functor m_X4ng)
(@ a_a4lR)
(@ b_a4lS)
(eta_B2 [Occ=Once] :: a_a4lR -> b_a4lS)
(eta1_B1 [Occ=Once] :: S.StateT s_X4ne m_X4ng a_a4lR) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT_$cfmap
@ m_X4ng @ s_X4ne $dFunctor_X4ni @ a_a4lR @ b_a4lS eta_B2 eta1_B1}]
K.$fFunctorStateT2 =
\ (@ s_X4ne)
(@ (m_X4ng :: * -> *))
($dFunctor_X4ni :: Functor m_X4ng)
(@ a_a4lR)
(@ b_a4lS) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT_$cfmap
@ m_X4ng @ s_X4ne $dFunctor_X4ni @ a_a4lR @ b_a4lS
-- RHS size: {terms: 1, types: 0, coercions: 31}
K.$fFunctorStateT_$cfmap
:: forall s_a4lL (m_a4lM :: * -> *).
Functor m_a4lM =>
forall a_a42b b_a42c.
(a_a42b -> b_a42c)
-> StateT s_a4lL m_a4lM a_a42b -> StateT s_a4lL m_a4lM b_a42c
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(C(U),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fFunctorStateT2
`cast` (forall (s_X4ne :: <*>_N).
forall (m_X4ng :: <* -> *>_N).
<Functor m_X4ng>_R
-> forall (a_a4lR :: <*>_N).
forall (b_a4lS :: <*>_N).
<a_a4lR -> b_a4lS>_R
-> Sym K.N:StateT[0] <s_X4ne>_N <m_X4ng>_N <a_a4lR>_N
-> Sym K.N:StateT[0] <s_X4ne>_N <m_X4ng>_N <b_a4lS>_N
:: ((forall s_X4ne (m_X4ng :: * -> *).
Functor m_X4ng =>
forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> S.StateT s_X4ne m_X4ng a_a4lR
-> S.StateT s_X4ne m_X4ng b_a4lS) :: *)
~R#
((forall s_X4ne (m_X4ng :: * -> *).
Functor m_X4ng =>
forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> StateT s_X4ne m_X4ng a_a4lR
-> StateT s_X4ne m_X4ng b_a4lS) :: *))}]
K.$fFunctorStateT_$cfmap =
K.$fFunctorStateT2
`cast` (forall (s_X4ne :: <*>_N).
forall (m_X4ng :: <* -> *>_N).
<Functor m_X4ng>_R
-> forall (a_a4lR :: <*>_N).
forall (b_a4lS :: <*>_N).
<a_a4lR -> b_a4lS>_R
-> Sym K.N:StateT[0] <s_X4ne>_N <m_X4ng>_N <a_a4lR>_N
-> Sym K.N:StateT[0] <s_X4ne>_N <m_X4ng>_N <b_a4lS>_N
:: ((forall s_X4ne (m_X4ng :: * -> *).
Functor m_X4ng =>
forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> S.StateT s_X4ne m_X4ng a_a4lR
-> S.StateT s_X4ne m_X4ng b_a4lS) :: *)
~R#
((forall s_X4ne (m_X4ng :: * -> *).
Functor m_X4ng =>
forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> StateT s_X4ne m_X4ng a_a4lR
-> StateT s_X4ne m_X4ng b_a4lS) :: *))
-- RHS size: {terms: 12, types: 27, coercions: 45}
K.$fFunctorStateT [InlPrag=[ALWAYS] CONLIKE]
:: forall s_a4lE (m_a4lF :: * -> *).
Functor m_a4lF =>
Functor (StateT s_a4lE m_a4lF)
[GblId[DFunId],
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,U(C(U),A)>m,
Unf=DFun: \ (@ s_X4nl[ssk])
(@ (m_X4nn[ssk] :: * -> *))
($dFunctor_X4np :: Functor m_X4nn[ssk]) ->
GHC.Base.C:Functor TYPE: StateT s_X4nl[ssk] m_X4nn[ssk]
K.$fFunctorStateT_$cfmap @ s_X4nl[ssk] @ m_X4nn[ssk] $dFunctor_X4np
K.$fFunctorStateT_$c<$ @ s_X4nl[ssk] @ m_X4nn[ssk] $dFunctor_X4np]
K.$fFunctorStateT =
\ (@ s_X4nl)
(@ (m_X4nn :: * -> *))
($dFunctor_X4np :: Functor m_X4nn) ->
GHC.Base.C:Functor
@ (StateT s_X4nl m_X4nn)
((\ (@ a_a4lR) (@ b_a4lS) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT_$cfmap
@ m_X4nn @ s_X4nl $dFunctor_X4np @ a_a4lR @ b_a4lS)
`cast` (forall (a_a4lR :: <*>_N).
forall (b_a4lS :: <*>_N).
<a_a4lR -> b_a4lS>_R
-> Sym K.N:StateT[0] <s_X4nl>_N <m_X4nn>_N <a_a4lR>_N
-> Sym K.N:StateT[0] <s_X4nl>_N <m_X4nn>_N <b_a4lS>_N
:: ((forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> S.StateT s_X4nl m_X4nn a_a4lR
-> S.StateT s_X4nl m_X4nn b_a4lS) :: *)
~R#
((forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> StateT s_X4nl m_X4nn a_a4lR
-> StateT s_X4nl m_X4nn b_a4lS) :: *)))
((\ (@ a_X4nV) (@ b_X4nX) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT1
@ m_X4nn @ s_X4nl $dFunctor_X4np @ a_X4nV @ b_X4nX)
`cast` (forall (a_X4nR :: <*>_N).
forall (b_X4nT :: <*>_N).
<a_X4nR>_R
-> Sym K.N:StateT[0] <s_X4nl>_N <m_X4nn>_N <b_X4nT>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4nl>_N <m_X4nn>_R <a_X4nR>_N)
; Sym K.N:StateT[0] <s_X4nl>_N <m_X4nn>_N <a_X4nR>_N
:: ((forall a_X4nR b_X4nT.
a_X4nR
-> S.StateT s_X4nl m_X4nn b_X4nT
-> s_X4nl
-> m_X4nn (a_X4nR, s_X4nl)) :: *)
~R#
((forall a_X4nR b_X4nT.
a_X4nR
-> StateT s_X4nl m_X4nn b_X4nT
-> StateT s_X4nl m_X4nn a_X4nR) :: *)))
-- RHS size: {terms: 7, types: 12, coercions: 0}
K.$fApplicativeStateT_$cp1Applicative
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
Functor (StateT s_a4nc m_a4nd)
[GblId,
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,1*U(1*U(1*U(C(U),A),A,A,A,A),A,A,A,A)>m,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
Tmpl= \ (@ s_X4oN)
(@ (m_X4oP :: * -> *))
($dMonad_X4oR [Occ=Once] :: Monad m_X4oP) ->
K.$fFunctorStateT
@ s_X4oN
@ m_X4oP
(GHC.Base.$p1Applicative
@ m_X4oP (GHC.Base.$p1Monad @ m_X4oP $dMonad_X4oR))}]
K.$fApplicativeStateT_$cp1Applicative =
\ (@ s_X4oN)
(@ (m_X4oP :: * -> *))
($dMonad_X4oR :: Monad m_X4oP) ->
K.$fFunctorStateT
@ s_X4oN
@ m_X4oP
(GHC.Base.$p1Applicative
@ m_X4oP (GHC.Base.$p1Monad @ m_X4oP $dMonad_X4oR))
-- RHS size: {terms: 20, types: 29, coercions: 104}
K.$fApplicativeStateT [InlPrag=[ALWAYS] CONLIKE]
:: forall s_a4lG (m_a4lH :: * -> *).
Monad m_a4lH =>
Applicative (StateT s_a4lG m_a4lH)
[GblId[DFunId],
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),A)>m,
Unf=DFun: \ (@ s_X4oO[ssk])
(@ (m_X4oQ[ssk] :: * -> *))
($dMonad_X4oS :: Monad m_X4oQ[ssk]) ->
GHC.Base.C:Applicative TYPE: StateT s_X4oO[ssk] m_X4oQ[ssk]
K.$fApplicativeStateT_$cp1Applicative
@ s_X4oO[ssk] @ m_X4oQ[ssk] $dMonad_X4oS
K.$fApplicativeStateT_$cpure
@ s_X4oO[ssk] @ m_X4oQ[ssk] $dMonad_X4oS
K.$fApplicativeStateT_$c<*>
@ s_X4oO[ssk] @ m_X4oQ[ssk] $dMonad_X4oS
K.$fApplicativeStateT_$c*> @ s_X4oO[ssk] @ m_X4oQ[ssk] $dMonad_X4oS
K.$fApplicativeStateT_$c<*
@ s_X4oO[ssk] @ m_X4oQ[ssk] $dMonad_X4oS]
K.$fApplicativeStateT =
\ (@ s_X4oO)
(@ (m_X4oQ :: * -> *))
($dMonad_X4oS :: Monad m_X4oQ) ->
GHC.Base.C:Applicative
@ (StateT s_X4oO m_X4oQ)
(K.$fApplicativeStateT_$cp1Applicative
@ s_X4oO @ m_X4oQ $dMonad_X4oS)
((\ (@ a_a4nm) (eta_X1o :: a_a4nm) (eta1_B1 :: s_X4oO) ->
return @ m_X4oQ $dMonad_X4oS @ (a_a4nm, s_X4oO) (eta_X1o, eta1_B1))
`cast` (forall (a_a4nm :: <*>_N).
<a_a4nm>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4oO>_N <m_X4oQ>_R <a_a4nm>_N)
; Sym K.N:StateT[0] <s_X4oO>_N <m_X4oQ>_N <a_a4nm>_N
:: ((forall a_a4nm.
a_a4nm -> s_X4oO -> m_X4oQ (a_a4nm, s_X4oO)) :: *)
~R#
((forall a_a4nm. a_a4nm -> StateT s_X4oO m_X4oQ a_a4nm) :: *)))
((K.$fApplicativeStateT3 @ s_X4oO @ m_X4oQ $dMonad_X4oS)
`cast` (forall (a_a4nO :: <*>_N).
forall (b_a4nP :: <*>_N).
Sym K.N:StateT[0] <s_X4oO>_N <m_X4oQ>_N <a_a4nO -> b_a4nP>_N
-> Sym K.N:StateT[0] <s_X4oO>_N <m_X4oQ>_N <a_a4nO>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4oO>_N <m_X4oQ>_R <b_a4nP>_N)
; Sym K.N:StateT[0] <s_X4oO>_N <m_X4oQ>_N <b_a4nP>_N
:: ((forall a_a4nO b_a4nP.
S.StateT s_X4oO m_X4oQ (a_a4nO -> b_a4nP)
-> S.StateT s_X4oO m_X4oQ a_a4nO
-> s_X4oO
-> m_X4oQ (b_a4nP, s_X4oO)) :: *)
~R#
((forall a_a4nO b_a4nP.
StateT s_X4oO m_X4oQ (a_a4nO -> b_a4nP)
-> StateT s_X4oO m_X4oQ a_a4nO
-> StateT s_X4oO m_X4oQ b_a4nP) :: *)))
((K.$fApplicativeStateT2 @ s_X4oO @ m_X4oQ $dMonad_X4oS)
`cast` (forall (a_a4ow :: <*>_N).
forall (b_a4ox :: <*>_N).
Sym K.N:StateT[0] <s_X4oO>_N <m_X4oQ>_N <a_a4ow>_N
-> Sym K.N:StateT[0] <s_X4oO>_N <m_X4oQ>_N <b_a4ox>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4oO>_N <m_X4oQ>_R <b_a4ox>_N)
; Sym K.N:StateT[0] <s_X4oO>_N <m_X4oQ>_N <b_a4ox>_N
:: ((forall a_a4ow b_a4ox.
S.StateT s_X4oO m_X4oQ a_a4ow
-> S.StateT s_X4oO m_X4oQ b_a4ox
-> s_X4oO
-> m_X4oQ (b_a4ox, s_X4oO)) :: *)
~R#
((forall a_a4ow b_a4ox.
StateT s_X4oO m_X4oQ a_a4ow
-> StateT s_X4oO m_X4oQ b_a4ox
-> StateT s_X4oO m_X4oQ b_a4ox) :: *)))
((K.$fApplicativeStateT1 @ s_X4oO @ m_X4oQ $dMonad_X4oS)
`cast` (forall (a_a4pa :: <*>_N).
forall (b_a4pb :: <*>_N).
Sym K.N:StateT[0] <s_X4oO>_N <m_X4oQ>_N <a_a4pa>_N
-> Sym K.N:StateT[0] <s_X4oO>_N <m_X4oQ>_N <b_a4pb>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4oO>_N <m_X4oQ>_R <a_a4pa>_N)
; Sym K.N:StateT[0] <s_X4oO>_N <m_X4oQ>_N <a_a4pa>_N
:: ((forall a_a4pa b_a4pb.
S.StateT s_X4oO m_X4oQ a_a4pa
-> S.StateT s_X4oO m_X4oQ b_a4pb
-> s_X4oO
-> m_X4oQ (a_a4pa, s_X4oO)) :: *)
~R#
((forall a_a4pa b_a4pb.
StateT s_X4oO m_X4oQ a_a4pa
-> StateT s_X4oO m_X4oQ b_a4pb
-> StateT s_X4oO m_X4oQ a_a4pa) :: *)))
-- RHS size: {terms: 20, types: 39, coercions: 75}
K.$fMonadStateT [InlPrag=[ALWAYS] CONLIKE]
:: forall s_a4lI (m_a4lJ :: * -> *).
Monad m_a4lJ =>
Monad (StateT s_a4lI m_a4lJ)
[GblId[DFunId],
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>m,
Unf=DFun: \ (@ s_X4rq[ssk])
(@ (m_X4rs[ssk] :: * -> *))
($dMonad_X4ru :: Monad m_X4rs[ssk]) ->
GHC.Base.C:Monad TYPE: StateT s_X4rq[ssk] m_X4rs[ssk]
K.$fApplicativeStateT @ s_X4rq[ssk] @ m_X4rs[ssk] $dMonad_X4ru
K.$fMonadStateT_$c>>= @ s_X4rq[ssk] @ m_X4rs[ssk] $dMonad_X4ru
K.$fMonadStateT_$c>> @ s_X4rq[ssk] @ m_X4rs[ssk] $dMonad_X4ru
K.$fMonadStateT_$creturn @ s_X4rq[ssk] @ m_X4rs[ssk] $dMonad_X4ru
K.$fMonadStateT_$cfail @ s_X4rq[ssk] @ m_X4rs[ssk] $dMonad_X4ru]
K.$fMonadStateT =
\ (@ s_X4rq)
(@ (m_X4rs :: * -> *))
($dMonad_X4ru :: Monad m_X4rs) ->
GHC.Base.C:Monad
@ (StateT s_X4rq m_X4rs)
(K.$fApplicativeStateT @ s_X4rq @ m_X4rs $dMonad_X4ru)
((\ (@ a_a4pX) (@ b_a4pY) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$c>>=
@ m_X4rs @ s_X4rq $dMonad_X4ru @ a_a4pX @ b_a4pY)
`cast` (forall (a_a4pX :: <*>_N).
forall (b_a4pY :: <*>_N).
Sym K.N:StateT[0] <s_X4rq>_N <m_X4rs>_N <a_a4pX>_N
-> (<a_a4pX>_R
-> Sym K.N:StateT[0] <s_X4rq>_N <m_X4rs>_N <b_a4pY>_N)
-> Sym K.N:StateT[0] <s_X4rq>_N <m_X4rs>_N <b_a4pY>_N
:: ((forall a_a4pX b_a4pY.
S.StateT s_X4rq m_X4rs a_a4pX
-> (a_a4pX -> S.StateT s_X4rq m_X4rs b_a4pY)
-> S.StateT s_X4rq m_X4rs b_a4pY) :: *)
~R#
((forall a_a4pX b_a4pY.
StateT s_X4rq m_X4rs a_a4pX
-> (a_a4pX -> StateT s_X4rq m_X4rs b_a4pY)
-> StateT s_X4rq m_X4rs b_a4pY) :: *)))
((\ (@ a_a4qF) (@ b_a4qG) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$c>>
@ m_X4rs @ s_X4rq $dMonad_X4ru @ a_a4qF @ b_a4qG)
`cast` (forall (a_a4qF :: <*>_N).
forall (b_a4qG :: <*>_N).
Sym K.N:StateT[0] <s_X4rq>_N <m_X4rs>_N <a_a4qF>_N
-> Sym K.N:StateT[0] <s_X4rq>_N <m_X4rs>_N <b_a4qG>_N
-> Sym K.N:StateT[0] <s_X4rq>_N <m_X4rs>_N <b_a4qG>_N
:: ((forall a_a4qF b_a4qG.
S.StateT s_X4rq m_X4rs a_a4qF
-> S.StateT s_X4rq m_X4rs b_a4qG
-> S.StateT s_X4rq m_X4rs b_a4qG) :: *)
~R#
((forall a_a4qF b_a4qG.
StateT s_X4rq m_X4rs a_a4qF
-> StateT s_X4rq m_X4rs b_a4qG
-> StateT s_X4rq m_X4rs b_a4qG) :: *)))
((\ (@ a_X4sI) ->
Control.Monad.Trans.State.Strict.$fMonadStateT1
@ m_X4rs @ s_X4rq $dMonad_X4ru @ a_X4sI)
`cast` (forall (a_X4sd :: <*>_N).
<a_X4sd>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4rq>_N <m_X4rs>_R <a_X4sd>_N)
; Sym K.N:StateT[0] <s_X4rq>_N <m_X4rs>_N <a_X4sd>_N
:: ((forall a_X4sd.
a_X4sd -> s_X4rq -> m_X4rs (a_X4sd, s_X4rq)) :: *)
~R#
((forall a_X4sd. a_X4sd -> StateT s_X4rq m_X4rs a_X4sd) :: *)))
((\ (@ a_a4rL) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$cfail
@ m_X4rs @ s_X4rq $dMonad_X4ru @ a_a4rL)
`cast` (forall (a_a4rL :: <*>_N).
<[Char]>_R -> Sym K.N:StateT[0] <s_X4rq>_N <m_X4rs>_N <a_a4rL>_N
:: ((forall a_a4rL. [Char] -> S.StateT s_X4rq m_X4rs a_a4rL) :: *)
~R#
((forall a_a4rL. [Char] -> StateT s_X4rq m_X4rs a_a4rL) :: *)))
-- RHS size: {terms: 6, types: 11, coercions: 0}
K.$fPrimMonadStateT_$cp1PrimMonad
:: forall (m_a4t5 :: * -> *) s_a4t6.
PrimMonad m_a4t5 =>
Monad (StateT s_a4t6 m_a4t5)
[GblId,
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,1*U(1*U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U)),A)>m,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
Tmpl= \ (@ (m_a4t5 :: * -> *))
(@ s_a4t6)
($dPrimMonad_a4t7 [Occ=Once] :: PrimMonad m_a4t5) ->
K.$fMonadStateT
@ s_a4t6
@ m_a4t5
(Control.Monad.Primitive.$p1PrimMonad @ m_a4t5 $dPrimMonad_a4t7)}]
K.$fPrimMonadStateT_$cp1PrimMonad =
\ (@ (m_a4t5 :: * -> *))
(@ s_a4t6)
($dPrimMonad_a4t7 :: PrimMonad m_a4t5) ->
K.$fMonadStateT
@ s_a4t6
@ m_a4t5
(Control.Monad.Primitive.$p1PrimMonad @ m_a4t5 $dPrimMonad_a4t7)
-- RHS size: {terms: 8, types: 15, coercions: 0}
K.$fPrimMonadStateT [InlPrag=[ALWAYS] CONLIKE]
:: forall (m_a41w :: * -> *) s_a41x.
PrimMonad m_a41w =>
PrimMonad (StateT s_a41x m_a41w)
[GblId[DFunId],
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,U(U(U(U(U,U),U,U,U,U),U,U,U,U),C(U))>m,
Unf=DFun: \ (@ (m_a4t5[ssk] :: * -> *))
(@ s_a4t6[ssk])
($dPrimMonad_a4t7 :: PrimMonad m_a4t5[ssk]) ->
Control.Monad.Primitive.C:PrimMonad TYPE: StateT
s_a4t6[ssk] m_a4t5[ssk]
K.$fPrimMonadStateT_$cp1PrimMonad
@ m_a4t5[ssk] @ s_a4t6[ssk] $dPrimMonad_a4t7
K.$fPrimMonadStateT_$cprimitive
@ m_a4t5[ssk] @ s_a4t6[ssk] $dPrimMonad_a4t7]
K.$fPrimMonadStateT =
\ (@ (m_a4t5 :: * -> *))
(@ s_a4t6)
($dPrimMonad_a4t7 :: PrimMonad m_a4t5) ->
Control.Monad.Primitive.C:PrimMonad
@ (StateT s_a4t6 m_a4t5)
(K.$fPrimMonadStateT_$cp1PrimMonad
@ m_a4t5 @ s_a4t6 $dPrimMonad_a4t7)
(K.$fPrimMonadStateT_$cprimitive
@ m_a4t5 @ s_a4t6 $dPrimMonad_a4t7)
-- RHS size: {terms: 2, types: 0, coercions: 0}
K.$trModule2 :: GHC.Types.TrName
[GblId,
Caf=NoCafRefs,
Str=DmdType m1,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 20}]
K.$trModule2 = GHC.Types.TrNameS "main"#
-- RHS size: {terms: 2, types: 0, coercions: 0}
K.$trModule1 :: GHC.Types.TrName
[GblId,
Caf=NoCafRefs,
Str=DmdType m1,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 20}]
K.$trModule1 = GHC.Types.TrNameS "K"#
-- RHS size: {terms: 3, types: 0, coercions: 0}
K.$trModule :: GHC.Types.Module
[GblId,
Caf=NoCafRefs,
Str=DmdType m,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
K.$trModule = GHC.Types.Module K.$trModule2 K.$trModule1
-- RHS size: {terms: 2, types: 0, coercions: 0}
K.$tc'StateT1 :: GHC.Types.TrName
[GblId,
Caf=NoCafRefs,
Str=DmdType m1,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 40 20}]
K.$tc'StateT1 = GHC.Types.TrNameS "'StateT"#
-- RHS size: {terms: 5, types: 0, coercions: 0}
K.$tc'StateT :: GHC.Types.TyCon
[GblId,
Caf=NoCafRefs,
Str=DmdType m,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 50}]
K.$tc'StateT =
GHC.Types.TyCon
8261700209586878308##
13506212086962882202##
K.$trModule
K.$tc'StateT1
-- RHS size: {terms: 2, types: 0, coercions: 0}
K.$tcStateT1 :: GHC.Types.TrName
[GblId,
Caf=NoCafRefs,
Str=DmdType m1,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 40 20}]
K.$tcStateT1 = GHC.Types.TrNameS "StateT"#
-- RHS size: {terms: 5, types: 0, coercions: 0}
K.$tcStateT :: GHC.Types.TyCon
[GblId,
Caf=NoCafRefs,
Str=DmdType m,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 50}]
K.$tcStateT =
GHC.Types.TyCon
5890985703738789954##
14127540780153994336##
K.$trModule
K.$tcStateT1
==================== Tidy Core ====================
2018-02-16 13:58:07.086739739 UTC
Result size of Tidy Core = {terms: 277, types: 955, coercions: 640}
-- RHS size: {terms: 1, types: 0, coercions: 22}
K.$fMonadTransStateT_$clift
:: forall s_a4sc (m_a4id :: * -> *) a_a4ie.
Monad m_a4id =>
m_a4id a_a4ie -> StateT s_a4sc m_a4id a_a4ie
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(A,1*C1(C1(U)),A,C(U),A)><L,U><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= Control.Monad.Trans.State.Strict.$fMonadTransStateT_$clift
`cast` (forall (s_a4sc :: <*>_N).
forall (m_a4sg :: <* -> *>_N).
forall (a_a4sh :: <*>_N).
<Monad m_a4sg>_R
-> <m_a4sg a_a4sh>_R
-> Sym K.N:StateT[0] <s_a4sc>_N <m_a4sg>_N <a_a4sh>_N
:: ((forall s_a4sc (m_a4sg :: * -> *) a_a4sh.
Monad m_a4sg =>
m_a4sg a_a4sh -> S.StateT s_a4sc m_a4sg a_a4sh) :: *)
~R#
((forall s_a4sc (m_a4sg :: * -> *) a_a4sh.
Monad m_a4sg =>
m_a4sg a_a4sh -> StateT s_a4sc m_a4sg a_a4sh) :: *))}]
K.$fMonadTransStateT_$clift =
Control.Monad.Trans.State.Strict.$fMonadTransStateT_$clift
`cast` (forall (s_a4sc :: <*>_N).
forall (m_a4sg :: <* -> *>_N).
forall (a_a4sh :: <*>_N).
<Monad m_a4sg>_R
-> <m_a4sg a_a4sh>_R
-> Sym K.N:StateT[0] <s_a4sc>_N <m_a4sg>_N <a_a4sh>_N
:: ((forall s_a4sc (m_a4sg :: * -> *) a_a4sh.
Monad m_a4sg =>
m_a4sg a_a4sh -> S.StateT s_a4sc m_a4sg a_a4sh) :: *)
~R#
((forall s_a4sc (m_a4sg :: * -> *) a_a4sh.
Monad m_a4sg =>
m_a4sg a_a4sh -> StateT s_a4sc m_a4sg a_a4sh) :: *))
-- RHS size: {terms: 1, types: 0, coercions: 27}
K.$fMonadTransStateT :: forall s_a4lK. MonadTrans (StateT s_a4lK)
[GblId[DFunId(nt)],
Arity=3,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(A,1*C1(C1(U)),A,C(U),A)><L,U><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=False,boring_ok=True)
Tmpl= K.$fMonadTransStateT_$clift
`cast` (forall (s_a4sc :: <*>_N).
Sym
(Control.Monad.Trans.Class.N:MonadTrans[0] <StateT s_a4sc[ssk]>_N)
:: ((forall s_a4sc[ssk] (m_a4id :: * -> *) a_a4ie.
Monad m_a4id =>
m_a4id a_a4ie -> StateT s_a4sc[ssk] m_a4id a_a4ie) :: *)
~R#
((forall s_a4sc[ssk].
MonadTrans (StateT s_a4sc[ssk])) :: Constraint))}]
K.$fMonadTransStateT =
Control.Monad.Trans.State.Strict.$fMonadTransStateT_$clift
`cast` (forall (s_a4sc :: <*>_N).
(forall (m_a4sg :: <* -> *>_N).
forall (a_a4sh :: <*>_N).
<Monad m_a4sg>_R
-> <m_a4sg a_a4sh>_R
-> Sym K.N:StateT[0] <s_a4sc>_N <m_a4sg>_N <a_a4sh>_N)
; Sym (Control.Monad.Trans.Class.N:MonadTrans[0] <StateT s_a4sc>_N)
:: ((forall s_a4sc (m_a4sg :: * -> *) a_a4sh.
Monad m_a4sg =>
m_a4sg a_a4sh -> S.StateT s_a4sc m_a4sg a_a4sh) :: *)
~R#
((forall s_a4sc. MonadTrans (StateT s_a4sc)) :: Constraint))
-- RHS size: {terms: 22, types: 44, coercions: 24}
K.$fPrimMonadStateT1
:: forall (m_a4t5 :: * -> *) s_a4t6.
PrimMonad m_a4t5 =>
forall a_a4tf.
(GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5))
-> (# GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5)),
a_a4tf #))
-> StateT s_a4t6 m_a4t5 a_a4tf
[GblId,
Arity=2,
Caf=NoCafRefs,
Str=DmdType <L,U(1*U,1*C1(U))><L,U>,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [60 0] 170 60}]
K.$fPrimMonadStateT1 =
\ (@ (m_a4t5 :: * -> *))
(@ s_a4t6)
($dPrimMonad_a4t7 :: PrimMonad m_a4t5)
(@ a_a4tf)
(eta_B1
:: GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5))
-> (# GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5)),
a_a4tf #)) ->
let {
$dMonad_s5rA [Dmd=<L,U(U,C(C(U)),U,C(U),U)>] :: Monad m_a4t5
[LclId, Str=DmdType]
$dMonad_s5rA =
Control.Monad.Primitive.$p1PrimMonad @ m_a4t5 $dPrimMonad_a4t7 } in
let {
m1_a5rH :: m_a4t5 a_a4tf
[LclId, Str=DmdType]
m1_a5rH =
primitive
@ m_a4t5
$dPrimMonad_a4t7
@ a_a4tf
(eta_B1
`cast` ((GHC.Prim.State#
(K.D:R:PrimStateStateT[0] <m_a4t5>_N <s_a4t6>_N))_R
-> (# (GHC.Prim.State#
(K.D:R:PrimStateStateT[0] <m_a4t5>_N <s_a4t6>_N))_R,
<a_a4tf>_R #)_R
:: ((GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5))
-> (# GHC.Prim.State# (PrimState (StateT s_a4t6 m_a4t5)),
a_a4tf #)) :: *)
~R#
((GHC.Prim.State# (PrimState m_a4t5)
-> (# GHC.Prim.State# (PrimState m_a4t5), a_a4tf #)) :: *))) } in
(\ (s1_a5rJ :: s_a4t6) ->
>>=
@ m_a4t5
$dMonad_s5rA
@ a_a4tf
@ (a_a4tf, s_a4t6)
m1_a5rH
(\ (a1_a5rK :: a_a4tf) ->
return
@ m_a4t5 $dMonad_s5rA @ (a_a4tf, s_a4t6) (a1_a5rK, s1_a5rJ)))
`cast` (Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_a4t6>_N <m_a4t5>_R <a_a4tf>_N)
; Sym K.N:StateT[0] <s_a4t6>_N <m_a4t5>_N <a_a4tf>_N
:: ((s_a4t6 -> m_a4t5 (a_a4tf, s_a4t6)) :: *)
~R#
(StateT s_a4t6 m_a4t5 a_a4tf :: *))
-- RHS size: {terms: 6, types: 13, coercions: 0}
K.$fMonadStateT2
:: forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4rL. String -> S.StateT s_a4pN m_a4pO a_a4rL
[GblId,
Arity=2,
Caf=NoCafRefs,
Str=DmdType <L,U(A,A,A,A,C(U))>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
Tmpl= \ (@ s_a4pN)
(@ (m_a4pO :: * -> *))
($dMonad_a4pP [Occ=Once] :: Monad m_a4pO)
(@ a_a4rL)
(eta_B1 [Occ=Once] :: String) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$cfail
@ m_a4pO @ s_a4pN $dMonad_a4pP @ a_a4rL eta_B1}]
K.$fMonadStateT2 =
\ (@ s_a4pN)
(@ (m_a4pO :: * -> *))
($dMonad_a4pP :: Monad m_a4pO)
(@ a_a4rL) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$cfail
@ m_a4pO @ s_a4pN $dMonad_a4pP @ a_a4rL
-- RHS size: {terms: 1, types: 0, coercions: 22}
K.$fMonadStateT1
:: forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4he. String -> StateT s_a4pN m_a4pO a_a4he
[GblId,
Arity=2,
Caf=NoCafRefs,
Str=DmdType <L,U(A,A,A,A,C(U))>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fMonadStateT2
`cast` (forall (s_a4pN :: <*>_N).
forall (m_a4pO :: <* -> *>_N).
<Monad m_a4pO>_R
-> forall (a_a4rL :: <*>_N).
<[Char]>_R -> Sym K.N:StateT[0] <s_a4pN>_N <m_a4pO>_N <a_a4rL>_N
:: ((forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4rL. [Char] -> S.StateT s_a4pN m_a4pO a_a4rL) :: *)
~R#
((forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4rL. [Char] -> StateT s_a4pN m_a4pO a_a4rL) :: *))}]
K.$fMonadStateT1 =
K.$fMonadStateT2
`cast` (forall (s_a4pN :: <*>_N).
forall (m_a4pO :: <* -> *>_N).
<Monad m_a4pO>_R
-> forall (a_a4rL :: <*>_N).
<[Char]>_R -> Sym K.N:StateT[0] <s_a4pN>_N <m_a4pO>_N <a_a4rL>_N
:: ((forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4rL. [Char] -> S.StateT s_a4pN m_a4pO a_a4rL) :: *)
~R#
((forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4rL. [Char] -> StateT s_a4pN m_a4pO a_a4rL) :: *))
-- RHS size: {terms: 6, types: 13, coercions: 0}
K.$fMonadStateT4
:: forall s_X4qp (m_X4qr :: * -> *).
Monad m_X4qr =>
forall a_a4rj. a_a4rj -> s_X4qp -> m_X4qr (a_a4rj, s_X4qp)
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(A,A,A,C(U),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
Tmpl= \ (@ s_X4qp)
(@ (m_X4qr :: * -> *))
($dMonad_X4qt [Occ=Once] :: Monad m_X4qr)
(@ a_a4rj)
(eta_B2 [Occ=Once] :: a_a4rj)
(eta1_B1 [Occ=Once] :: s_X4qp) ->
Control.Monad.Trans.State.Strict.$fMonadStateT1
@ m_X4qr @ s_X4qp $dMonad_X4qt @ a_a4rj eta_B2 eta1_B1}]
K.$fMonadStateT4 =
\ (@ s_X4qp)
(@ (m_X4qr :: * -> *))
($dMonad_X4qt :: Monad m_X4qr)
(@ a_a4rj) ->
Control.Monad.Trans.State.Strict.$fMonadStateT1
@ m_X4qr @ s_X4qp $dMonad_X4qt @ a_a4rj
-- RHS size: {terms: 1, types: 0, coercions: 27}
K.$fMonadStateT3
:: forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4hc. a_a4hc -> StateT s_a4pN m_a4pO a_a4hc
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(A,A,A,C(U),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fMonadStateT4
`cast` (forall (s_X4rh :: <*>_N).
forall (m_X4rk :: <* -> *>_N).
<Monad m_X4rk>_R
-> forall (a_X4sd :: <*>_N).
<a_X4sd>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4rh>_N <m_X4rk>_R <a_X4sd>_N)
; Sym K.N:StateT[0] <s_X4rh>_N <m_X4rk>_N <a_X4sd>_N
:: ((forall s_X4rh (m_X4rk :: * -> *).
Monad m_X4rk =>
forall a_X4sd. a_X4sd -> s_X4rh -> m_X4rk (a_X4sd, s_X4rh)) :: *)
~R#
((forall s_X4rh (m_X4rk :: * -> *).
Monad m_X4rk =>
forall a_X4sd. a_X4sd -> StateT s_X4rh m_X4rk a_X4sd) :: *))}]
K.$fMonadStateT3 =
K.$fMonadStateT4
`cast` (forall (s_X4rh :: <*>_N).
forall (m_X4rk :: <* -> *>_N).
<Monad m_X4rk>_R
-> forall (a_X4sd :: <*>_N).
<a_X4sd>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4rh>_N <m_X4rk>_R <a_X4sd>_N)
; Sym K.N:StateT[0] <s_X4rh>_N <m_X4rk>_N <a_X4sd>_N
:: ((forall s_X4rh (m_X4rk :: * -> *).
Monad m_X4rk =>
forall a_X4sd. a_X4sd -> s_X4rh -> m_X4rk (a_X4sd, s_X4rh)) :: *)
~R#
((forall s_X4rh (m_X4rk :: * -> *).
Monad m_X4rk =>
forall a_X4sd. a_X4sd -> StateT s_X4rh m_X4rk a_X4sd) :: *))
-- RHS size: {terms: 7, types: 16, coercions: 0}
K.$fMonadStateT6
:: forall s_X4qv (m_X4qx :: * -> *).
Monad m_X4qx =>
forall a_a4qF b_a4qG.
S.StateT s_X4qv m_X4qx a_a4qF
-> S.StateT s_X4qv m_X4qx b_a4qG -> S.StateT s_X4qv m_X4qx b_a4qG
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
Tmpl= \ (@ s_X4qv)
(@ (m_X4qx :: * -> *))
($dMonad_X4qz [Occ=Once] :: Monad m_X4qx)
(@ a_a4qF)
(@ b_a4qG)
(eta_B2 [Occ=Once] :: S.StateT s_X4qv m_X4qx a_a4qF)
(eta1_B1 [Occ=Once] :: S.StateT s_X4qv m_X4qx b_a4qG) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$c>>
@ m_X4qx @ s_X4qv $dMonad_X4qz @ a_a4qF @ b_a4qG eta_B2 eta1_B1}]
K.$fMonadStateT6 =
\ (@ s_X4qv)
(@ (m_X4qx :: * -> *))
($dMonad_X4qz :: Monad m_X4qx)
(@ a_a4qF)
(@ b_a4qG) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$c>>
@ m_X4qx @ s_X4qv $dMonad_X4qz @ a_a4qF @ b_a4qG
-- RHS size: {terms: 1, types: 0, coercions: 34}
K.$fMonadStateT5
:: forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4h9 b_a4ha.
StateT s_a4pN m_a4pO a_a4h9
-> StateT s_a4pN m_a4pO b_a4ha -> StateT s_a4pN m_a4pO b_a4ha
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fMonadStateT6
`cast` (forall (s_X4qv :: <*>_N).
forall (m_X4qx :: <* -> *>_N).
<Monad m_X4qx>_R
-> forall (a_a4qF :: <*>_N).
forall (b_a4qG :: <*>_N).
Sym K.N:StateT[0] <s_X4qv>_N <m_X4qx>_N <a_a4qF>_N
-> Sym K.N:StateT[0] <s_X4qv>_N <m_X4qx>_N <b_a4qG>_N
-> Sym K.N:StateT[0] <s_X4qv>_N <m_X4qx>_N <b_a4qG>_N
:: ((forall s_X4qv (m_X4qx :: * -> *).
Monad m_X4qx =>
forall a_a4qF b_a4qG.
S.StateT s_X4qv m_X4qx a_a4qF
-> S.StateT s_X4qv m_X4qx b_a4qG
-> S.StateT s_X4qv m_X4qx b_a4qG) :: *)
~R#
((forall s_X4qv (m_X4qx :: * -> *).
Monad m_X4qx =>
forall a_a4qF b_a4qG.
StateT s_X4qv m_X4qx a_a4qF
-> StateT s_X4qv m_X4qx b_a4qG
-> StateT s_X4qv m_X4qx b_a4qG) :: *))}]
K.$fMonadStateT5 =
K.$fMonadStateT6
`cast` (forall (s_X4qv :: <*>_N).
forall (m_X4qx :: <* -> *>_N).
<Monad m_X4qx>_R
-> forall (a_a4qF :: <*>_N).
forall (b_a4qG :: <*>_N).
Sym K.N:StateT[0] <s_X4qv>_N <m_X4qx>_N <a_a4qF>_N
-> Sym K.N:StateT[0] <s_X4qv>_N <m_X4qx>_N <b_a4qG>_N
-> Sym K.N:StateT[0] <s_X4qv>_N <m_X4qx>_N <b_a4qG>_N
:: ((forall s_X4qv (m_X4qx :: * -> *).
Monad m_X4qx =>
forall a_a4qF b_a4qG.
S.StateT s_X4qv m_X4qx a_a4qF
-> S.StateT s_X4qv m_X4qx b_a4qG
-> S.StateT s_X4qv m_X4qx b_a4qG) :: *)
~R#
((forall s_X4qv (m_X4qx :: * -> *).
Monad m_X4qx =>
forall a_a4qF b_a4qG.
StateT s_X4qv m_X4qx a_a4qF
-> StateT s_X4qv m_X4qx b_a4qG
-> StateT s_X4qv m_X4qx b_a4qG) :: *))
-- RHS size: {terms: 7, types: 16, coercions: 0}
K.$fMonadStateT8
:: forall s_X4qC (m_X4qE :: * -> *).
Monad m_X4qE =>
forall a_a4pX b_a4pY.
S.StateT s_X4qC m_X4qE a_a4pX
-> (a_a4pX -> S.StateT s_X4qC m_X4qE b_a4pY)
-> S.StateT s_X4qC m_X4qE b_a4pY
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <L,U(A,C(C1(U)),A,A,A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
Tmpl= (\ (@ s_X4qC)
(@ (m_X4qE :: * -> *))
($dMonad_X4qG [Occ=OnceL] :: Monad m_X4qE)
(@ a_a4pX)
(@ b_a4pY)
(eta_B3 [Occ=OnceL] :: S.StateT s_X4qC m_X4qE a_a4pX)
(eta1_B2 [Occ=OnceL!] :: a_a4pX -> S.StateT s_X4qC m_X4qE b_a4pY)
(eta2_B1 [Occ=Once] :: s_X4qC) ->
(($ @ 'GHC.Types.PtrRepLifted
@ (s_X4qC -> m_X4qE (b_a4pY, s_X4qC))
@ (S.StateT s_X4qC m_X4qE b_a4pY)
((\ (tpl_a5q0 [Occ=Once] :: s_X4qC -> m_X4qE (b_a4pY, s_X4qC)) ->
tpl_a5q0)
`cast` (<s_X4qC -> m_X4qE (b_a4pY, s_X4qC)>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4qC>_N <m_X4qE>_R <b_a4pY>_N)
:: (((s_X4qC -> m_X4qE (b_a4pY, s_X4qC))
-> s_X4qC -> m_X4qE (b_a4pY, s_X4qC)) :: *)
~R#
(((s_X4qC -> m_X4qE (b_a4pY, s_X4qC))
-> S.StateT s_X4qC m_X4qE b_a4pY) :: *)))
(\ (s1_a5q1 [Occ=Once] :: s_X4qC) ->
>>=
@ m_X4qE
$dMonad_X4qG
@ (a_a4pX, s_X4qC)
@ (b_a4pY, s_X4qC)
(S.runStateT @ s_X4qC @ m_X4qE @ a_a4pX eta_B3 s1_a5q1)
(\ (ds_a5q2 [Occ=Once!] :: (a_a4pX, s_X4qC)) ->
case ds_a5q2
of _ [Occ=Dead] { (a1_a5q5 [Occ=Once], s'_a5q6 [Occ=Once]) ->
S.runStateT @ s_X4qC @ m_X4qE @ b_a4pY (eta1_B2 a1_a5q5) s'_a5q6
})))
`cast` (Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4qC>_N <m_X4qE>_R <b_a4pY>_N
:: (S.StateT s_X4qC m_X4qE b_a4pY :: *)
~R#
((s_X4qC -> m_X4qE (b_a4pY, s_X4qC)) :: *)))
eta2_B1)
`cast` (forall (s_X4qC :: <*>_N).
forall (m_X4qE :: <* -> *>_N).
<Monad m_X4qE>_R
-> forall (a_a4pX :: <*>_N).
forall (b_a4pY :: <*>_N).
<S.StateT s_X4qC m_X4qE a_a4pX>_R
-> <a_a4pX -> S.StateT s_X4qC m_X4qE b_a4pY>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4qC>_N <m_X4qE>_R <b_a4pY>_N)
:: ((forall s_X4qC (m_X4qE :: * -> *).
Monad m_X4qE =>
forall a_a4pX b_a4pY.
S.StateT s_X4qC m_X4qE a_a4pX
-> (a_a4pX -> S.StateT s_X4qC m_X4qE b_a4pY)
-> s_X4qC
-> m_X4qE (b_a4pY, s_X4qC)) :: *)
~R#
((forall s_X4qC (m_X4qE :: * -> *).
Monad m_X4qE =>
forall a_a4pX b_a4pY.
S.StateT s_X4qC m_X4qE a_a4pX
-> (a_a4pX -> S.StateT s_X4qC m_X4qE b_a4pY)
-> S.StateT s_X4qC m_X4qE b_a4pY) :: *))}]
K.$fMonadStateT8 =
\ (@ s_X4qC)
(@ (m_X4qE :: * -> *))
($dMonad_X4qG :: Monad m_X4qE)
(@ a_a4pX)
(@ b_a4pY) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$c>>=
@ m_X4qE @ s_X4qC $dMonad_X4qG @ a_a4pX @ b_a4pY
-- RHS size: {terms: 1, types: 0, coercions: 36}
K.$fMonadStateT7
:: forall s_a4pN (m_a4pO :: * -> *).
Monad m_a4pO =>
forall a_a4h6 b_a4h7.
StateT s_a4pN m_a4pO a_a4h6
-> (a_a4h6 -> StateT s_a4pN m_a4pO b_a4h7)
-> StateT s_a4pN m_a4pO b_a4h7
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <L,U(A,C(C1(U)),A,A,A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fMonadStateT8
`cast` (forall (s_X4qC :: <*>_N).
forall (m_X4qE :: <* -> *>_N).
<Monad m_X4qE>_R
-> forall (a_a4pX :: <*>_N).
forall (b_a4pY :: <*>_N).
Sym K.N:StateT[0] <s_X4qC>_N <m_X4qE>_N <a_a4pX>_N
-> (<a_a4pX>_R
-> Sym K.N:StateT[0] <s_X4qC>_N <m_X4qE>_N <b_a4pY>_N)
-> Sym K.N:StateT[0] <s_X4qC>_N <m_X4qE>_N <b_a4pY>_N
:: ((forall s_X4qC (m_X4qE :: * -> *).
Monad m_X4qE =>
forall a_a4pX b_a4pY.
S.StateT s_X4qC m_X4qE a_a4pX
-> (a_a4pX -> S.StateT s_X4qC m_X4qE b_a4pY)
-> S.StateT s_X4qC m_X4qE b_a4pY) :: *)
~R#
((forall s_X4qC (m_X4qE :: * -> *).
Monad m_X4qE =>
forall a_a4pX b_a4pY.
StateT s_X4qC m_X4qE a_a4pX
-> (a_a4pX -> StateT s_X4qC m_X4qE b_a4pY)
-> StateT s_X4qC m_X4qE b_a4pY) :: *))}]
K.$fMonadStateT7 =
K.$fMonadStateT8
`cast` (forall (s_X4qC :: <*>_N).
forall (m_X4qE :: <* -> *>_N).
<Monad m_X4qE>_R
-> forall (a_a4pX :: <*>_N).
forall (b_a4pY :: <*>_N).
Sym K.N:StateT[0] <s_X4qC>_N <m_X4qE>_N <a_a4pX>_N
-> (<a_a4pX>_R
-> Sym K.N:StateT[0] <s_X4qC>_N <m_X4qE>_N <b_a4pY>_N)
-> Sym K.N:StateT[0] <s_X4qC>_N <m_X4qE>_N <b_a4pY>_N
:: ((forall s_X4qC (m_X4qE :: * -> *).
Monad m_X4qE =>
forall a_a4pX b_a4pY.
S.StateT s_X4qC m_X4qE a_a4pX
-> (a_a4pX -> S.StateT s_X4qC m_X4qE b_a4pY)
-> S.StateT s_X4qC m_X4qE b_a4pY) :: *)
~R#
((forall s_X4qC (m_X4qE :: * -> *).
Monad m_X4qE =>
forall a_a4pX b_a4pY.
StateT s_X4qC m_X4qE a_a4pX
-> (a_a4pX -> StateT s_X4qC m_X4qE b_a4pY)
-> StateT s_X4qC m_X4qE b_a4pY) :: *))
-- RHS size: {terms: 16, types: 27, coercions: 0}
K.$fApplicativeStateT2
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4pa b_a4pb.
S.StateT s_a4nc m_a4nd a_a4pa
-> S.StateT s_a4nc m_a4nd b_a4pb
-> s_a4nc
-> m_a4nd (a_a4pa, s_a4nc)
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(1*U(1*U(1*C1(C1(U)),A),A,A,A,A),C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=4,unsat_ok=True,boring_ok=False)
Tmpl= \ (@ s_a4nc)
(@ (m_a4nd :: * -> *))
($dMonad_a4ne :: Monad m_a4nd)
(@ a_a4pa)
(@ b_a4pb)
(eta_B3 [Occ=Once] :: S.StateT s_a4nc m_a4nd a_a4pa)
(eta1_B2 [Occ=Once] :: S.StateT s_a4nc m_a4nd b_a4pb)
(eta2_B1 [Occ=Once] :: s_a4nc) ->
Control.Monad.Trans.State.Strict.$fApplicativeStateT1
@ m_a4nd
@ s_a4nc
(GHC.Base.$p1Applicative
@ m_a4nd (GHC.Base.$p1Monad @ m_a4nd $dMonad_a4ne))
$dMonad_a4ne
@ a_a4pa
@ b_a4pb
eta_B3
eta1_B2
eta2_B1}]
K.$fApplicativeStateT2 =
\ (@ s_a4nc)
(@ (m_a4nd :: * -> *))
($dMonad_a4ne :: Monad m_a4nd)
(@ a_a4pa)
(@ b_a4pb)
(eta_B3 :: S.StateT s_a4nc m_a4nd a_a4pa)
(eta1_B2 :: S.StateT s_a4nc m_a4nd b_a4pb)
(eta2_B1 :: s_a4nc) ->
Control.Monad.Trans.State.Strict.$fApplicativeStateT1
@ m_a4nd
@ s_a4nc
(GHC.Base.$p1Applicative
@ m_a4nd (GHC.Base.$p1Monad @ m_a4nd $dMonad_a4ne))
$dMonad_a4ne
@ a_a4pa
@ b_a4pb
eta_B3
eta1_B2
eta2_B1
-- RHS size: {terms: 1, types: 0, coercions: 40}
K.$fApplicativeStateT1
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4d9 b_a4da.
StateT s_a4nc m_a4nd a_a4d9
-> StateT s_a4nc m_a4nd b_a4da -> StateT s_a4nc m_a4nd a_a4d9
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(1*U(1*U(1*C1(C1(U)),A),A,A,A,A),C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fApplicativeStateT2
`cast` (forall (s_a4nc :: <*>_N).
forall (m_a4nd :: <* -> *>_N).
<Monad m_a4nd>_R
-> forall (a_a4pa :: <*>_N).
forall (b_a4pb :: <*>_N).
Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <a_a4pa>_N
-> Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <b_a4pb>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_a4nc>_N <m_a4nd>_R <a_a4pa>_N)
; Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <a_a4pa>_N
:: ((forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4pa b_a4pb.
S.StateT s_a4nc m_a4nd a_a4pa
-> S.StateT s_a4nc m_a4nd b_a4pb
-> s_a4nc
-> m_a4nd (a_a4pa, s_a4nc)) :: *)
~R#
((forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4pa b_a4pb.
StateT s_a4nc m_a4nd a_a4pa
-> StateT s_a4nc m_a4nd b_a4pb
-> StateT s_a4nc m_a4nd a_a4pa) :: *))}]
K.$fApplicativeStateT1 =
K.$fApplicativeStateT2
`cast` (forall (s_a4nc :: <*>_N).
forall (m_a4nd :: <* -> *>_N).
<Monad m_a4nd>_R
-> forall (a_a4pa :: <*>_N).
forall (b_a4pb :: <*>_N).
Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <a_a4pa>_N
-> Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <b_a4pb>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_a4nc>_N <m_a4nd>_R <a_a4pa>_N)
; Sym K.N:StateT[0] <s_a4nc>_N <m_a4nd>_N <a_a4pa>_N
:: ((forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4pa b_a4pb.
S.StateT s_a4nc m_a4nd a_a4pa
-> S.StateT s_a4nc m_a4nd b_a4pb
-> s_a4nc
-> m_a4nd (a_a4pa, s_a4nc)) :: *)
~R#
((forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4pa b_a4pb.
StateT s_a4nc m_a4nd a_a4pa
-> StateT s_a4nc m_a4nd b_a4pb
-> StateT s_a4nc m_a4nd a_a4pa) :: *))
-- RHS size: {terms: 16, types: 27, coercions: 0}
K.$fApplicativeStateT4
:: forall s_X4of (m_X4oh :: * -> *).
Monad m_X4oh =>
forall a_a4ow b_a4ox.
S.StateT s_X4of m_X4oh a_a4ow
-> S.StateT s_X4of m_X4oh b_a4ox
-> s_X4of
-> m_X4oh (b_a4ox, s_X4of)
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(1*U(1*U(1*C1(C1(U)),A),A,A,A,A),C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=4,unsat_ok=True,boring_ok=False)
Tmpl= \ (@ s_X4of)
(@ (m_X4oh :: * -> *))
($dMonad_X4oj :: Monad m_X4oh)
(@ a_a4ow)
(@ b_a4ox)
(eta_X17 [Occ=Once] :: S.StateT s_X4of m_X4oh a_a4ow)
(eta1_X2c [Occ=Once] :: S.StateT s_X4of m_X4oh b_a4ox)
(eta2_B1 [Occ=Once] :: s_X4of) ->
Control.Monad.Trans.State.Strict.$fApplicativeStateT3
@ m_X4oh
@ s_X4of
(GHC.Base.$p1Applicative
@ m_X4oh (GHC.Base.$p1Monad @ m_X4oh $dMonad_X4oj))
$dMonad_X4oj
@ a_a4ow
@ b_a4ox
eta_X17
eta1_X2c
eta2_B1}]
K.$fApplicativeStateT4 =
\ (@ s_X4of)
(@ (m_X4oh :: * -> *))
($dMonad_X4oj :: Monad m_X4oh)
(@ a_a4ow)
(@ b_a4ox)
(eta_X17 :: S.StateT s_X4of m_X4oh a_a4ow)
(eta1_X2c :: S.StateT s_X4of m_X4oh b_a4ox)
(eta2_B1 :: s_X4of) ->
Control.Monad.Trans.State.Strict.$fApplicativeStateT3
@ m_X4oh
@ s_X4of
(GHC.Base.$p1Applicative
@ m_X4oh (GHC.Base.$p1Monad @ m_X4oh $dMonad_X4oj))
$dMonad_X4oj
@ a_a4ow
@ b_a4ox
eta_X17
eta1_X2c
eta2_B1
-- RHS size: {terms: 1, types: 0, coercions: 40}
K.$fApplicativeStateT3
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4d6 b_a4d7.
StateT s_a4nc m_a4nd a_a4d6
-> StateT s_a4nc m_a4nd b_a4d7 -> StateT s_a4nc m_a4nd b_a4d7
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(1*U(1*U(1*C1(C1(U)),A),A,A,A,A),C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fApplicativeStateT4
`cast` (forall (s_X4of :: <*>_N).
forall (m_X4oh :: <* -> *>_N).
<Monad m_X4oh>_R
-> forall (a_a4ow :: <*>_N).
forall (b_a4ox :: <*>_N).
Sym K.N:StateT[0] <s_X4of>_N <m_X4oh>_N <a_a4ow>_N
-> Sym K.N:StateT[0] <s_X4of>_N <m_X4oh>_N <b_a4ox>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4of>_N <m_X4oh>_R <b_a4ox>_N)
; Sym K.N:StateT[0] <s_X4of>_N <m_X4oh>_N <b_a4ox>_N
:: ((forall s_X4of (m_X4oh :: * -> *).
Monad m_X4oh =>
forall a_a4ow b_a4ox.
S.StateT s_X4of m_X4oh a_a4ow
-> S.StateT s_X4of m_X4oh b_a4ox
-> s_X4of
-> m_X4oh (b_a4ox, s_X4of)) :: *)
~R#
((forall s_X4of (m_X4oh :: * -> *).
Monad m_X4oh =>
forall a_a4ow b_a4ox.
StateT s_X4of m_X4oh a_a4ow
-> StateT s_X4of m_X4oh b_a4ox
-> StateT s_X4of m_X4oh b_a4ox) :: *))}]
K.$fApplicativeStateT3 =
K.$fApplicativeStateT4
`cast` (forall (s_X4of :: <*>_N).
forall (m_X4oh :: <* -> *>_N).
<Monad m_X4oh>_R
-> forall (a_a4ow :: <*>_N).
forall (b_a4ox :: <*>_N).
Sym K.N:StateT[0] <s_X4of>_N <m_X4oh>_N <a_a4ow>_N
-> Sym K.N:StateT[0] <s_X4of>_N <m_X4oh>_N <b_a4ox>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4of>_N <m_X4oh>_R <b_a4ox>_N)
; Sym K.N:StateT[0] <s_X4of>_N <m_X4oh>_N <b_a4ox>_N
:: ((forall s_X4of (m_X4oh :: * -> *).
Monad m_X4oh =>
forall a_a4ow b_a4ox.
S.StateT s_X4of m_X4oh a_a4ow
-> S.StateT s_X4of m_X4oh b_a4ox
-> s_X4of
-> m_X4oh (b_a4ox, s_X4of)) :: *)
~R#
((forall s_X4of (m_X4oh :: * -> *).
Monad m_X4oh =>
forall a_a4ow b_a4ox.
StateT s_X4of m_X4oh a_a4ow
-> StateT s_X4of m_X4oh b_a4ox
-> StateT s_X4of m_X4oh b_a4ox) :: *))
-- RHS size: {terms: 30, types: 62, coercions: 9}
K.$fApplicativeStateT6
:: forall s_X4om (m_X4oo :: * -> *).
Monad m_X4oo =>
forall a_a4nO b_a4nP.
S.StateT s_X4om m_X4oo (a_a4nO -> b_a4nP)
-> S.StateT s_X4om m_X4oo a_a4nO
-> s_X4om
-> m_X4oo (b_a4nP, s_X4om)
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=IF_ARGS [90 60 60 0] 220 0}]
K.$fApplicativeStateT6 =
\ (@ s_X4om)
(@ (m_X4oo :: * -> *))
($dMonad_X4oq :: Monad m_X4oo)
(@ a_a4nO)
(@ b_a4nP)
(eta_X1h :: S.StateT s_X4om m_X4oo (a_a4nO -> b_a4nP))
(eta1_X2w :: S.StateT s_X4om m_X4oo a_a4nO)
(eta2_B1 :: s_X4om) ->
>>=
@ m_X4oo
$dMonad_X4oq
@ (a_a4nO -> b_a4nP, s_X4om)
@ (b_a4nP, s_X4om)
((eta_X1h
`cast` (Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4om>_N <m_X4oo>_R <a_a4nO -> b_a4nP>_N
:: (S.StateT s_X4om m_X4oo (a_a4nO -> b_a4nP) :: *)
~R#
((s_X4om -> m_X4oo (a_a4nO -> b_a4nP, s_X4om)) :: *)))
eta2_B1)
(\ (ds2_a5qD :: (a_a4nO -> b_a4nP, s_X4om)) ->
case ds2_a5qD of _ [Occ=Dead] { (f_a5qG, s'_a5qH) ->
>>=
@ m_X4oo
$dMonad_X4oq
@ (a_a4nO, s_X4om)
@ (b_a4nP, s_X4om)
((eta1_X2w
`cast` (Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4om>_N <m_X4oo>_R <a_a4nO>_N
:: (S.StateT s_X4om m_X4oo a_a4nO :: *)
~R#
((s_X4om -> m_X4oo (a_a4nO, s_X4om)) :: *)))
s'_a5qH)
(\ (ds3_a5qJ :: (a_a4nO, s_X4om)) ->
case ds3_a5qJ of _ [Occ=Dead] { (x_a5qM, s''_a5qN) ->
return
@ m_X4oo $dMonad_X4oq @ (b_a4nP, s_X4om) (f_a5qG x_a5qM, s''_a5qN)
})
})
-- RHS size: {terms: 1, types: 0, coercions: 41}
K.$fApplicativeStateT5
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4d3 b_a4d4.
StateT s_a4nc m_a4nd (a_a4d3 -> b_a4d4)
-> StateT s_a4nc m_a4nd a_a4d3 -> StateT s_a4nc m_a4nd b_a4d4
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fApplicativeStateT6
`cast` (forall (s_X4om :: <*>_N).
forall (m_X4oo :: <* -> *>_N).
<Monad m_X4oo>_R
-> forall (a_a4nO :: <*>_N).
forall (b_a4nP :: <*>_N).
Sym K.N:StateT[0] <s_X4om>_N <m_X4oo>_N <a_a4nO -> b_a4nP>_N
-> Sym K.N:StateT[0] <s_X4om>_N <m_X4oo>_N <a_a4nO>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4om>_N <m_X4oo>_R <b_a4nP>_N)
; Sym K.N:StateT[0] <s_X4om>_N <m_X4oo>_N <b_a4nP>_N
:: ((forall s_X4om (m_X4oo :: * -> *).
Monad m_X4oo =>
forall a_a4nO b_a4nP.
S.StateT s_X4om m_X4oo (a_a4nO -> b_a4nP)
-> S.StateT s_X4om m_X4oo a_a4nO
-> s_X4om
-> m_X4oo (b_a4nP, s_X4om)) :: *)
~R#
((forall s_X4om (m_X4oo :: * -> *).
Monad m_X4oo =>
forall a_a4nO b_a4nP.
StateT s_X4om m_X4oo (a_a4nO -> b_a4nP)
-> StateT s_X4om m_X4oo a_a4nO
-> StateT s_X4om m_X4oo b_a4nP) :: *))}]
K.$fApplicativeStateT5 =
K.$fApplicativeStateT6
`cast` (forall (s_X4om :: <*>_N).
forall (m_X4oo :: <* -> *>_N).
<Monad m_X4oo>_R
-> forall (a_a4nO :: <*>_N).
forall (b_a4nP :: <*>_N).
Sym K.N:StateT[0] <s_X4om>_N <m_X4oo>_N <a_a4nO -> b_a4nP>_N
-> Sym K.N:StateT[0] <s_X4om>_N <m_X4oo>_N <a_a4nO>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4om>_N <m_X4oo>_R <b_a4nP>_N)
; Sym K.N:StateT[0] <s_X4om>_N <m_X4oo>_N <b_a4nP>_N
:: ((forall s_X4om (m_X4oo :: * -> *).
Monad m_X4oo =>
forall a_a4nO b_a4nP.
S.StateT s_X4om m_X4oo (a_a4nO -> b_a4nP)
-> S.StateT s_X4om m_X4oo a_a4nO
-> s_X4om
-> m_X4oo (b_a4nP, s_X4om)) :: *)
~R#
((forall s_X4om (m_X4oo :: * -> *).
Monad m_X4oo =>
forall a_a4nO b_a4nP.
StateT s_X4om m_X4oo (a_a4nO -> b_a4nP)
-> StateT s_X4om m_X4oo a_a4nO
-> StateT s_X4om m_X4oo b_a4nP) :: *))
-- RHS size: {terms: 11, types: 18, coercions: 0}
K.$fApplicativeStateT8
:: forall s_X4ot (m_X4ov :: * -> *).
Monad m_X4ov =>
forall a_a4nm. a_a4nm -> s_X4ot -> m_X4ov (a_a4nm, s_X4ot)
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,U><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=3,unsat_ok=True,boring_ok=False)
Tmpl= \ (@ s_X4ot)
(@ (m_X4ov :: * -> *))
($dMonad_X4ox [Occ=Once] :: Monad m_X4ov)
(@ a_a4nm)
(eta_X1p [Occ=Once] :: a_a4nm)
(eta1_B1 [Occ=Once] :: s_X4ot) ->
return
@ m_X4ov $dMonad_X4ox @ (a_a4nm, s_X4ot) (eta_X1p, eta1_B1)}]
K.$fApplicativeStateT8 =
\ (@ s_X4ot)
(@ (m_X4ov :: * -> *))
($dMonad_X4ox :: Monad m_X4ov)
(@ a_a4nm)
(eta_X1p :: a_a4nm)
(eta1_B1 :: s_X4ot) ->
return @ m_X4ov $dMonad_X4ox @ (a_a4nm, s_X4ot) (eta_X1p, eta1_B1)
-- RHS size: {terms: 1, types: 0, coercions: 27}
K.$fApplicativeStateT7
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
forall a_a4d1. a_a4d1 -> StateT s_a4nc m_a4nd a_a4d1
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,U><L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fApplicativeStateT8
`cast` (forall (s_X4ot :: <*>_N).
forall (m_X4ov :: <* -> *>_N).
<Monad m_X4ov>_R
-> forall (a_a4nm :: <*>_N).
<a_a4nm>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4ot>_N <m_X4ov>_R <a_a4nm>_N)
; Sym K.N:StateT[0] <s_X4ot>_N <m_X4ov>_N <a_a4nm>_N
:: ((forall s_X4ot (m_X4ov :: * -> *).
Monad m_X4ov =>
forall a_a4nm. a_a4nm -> s_X4ot -> m_X4ov (a_a4nm, s_X4ot)) :: *)
~R#
((forall s_X4ot (m_X4ov :: * -> *).
Monad m_X4ov =>
forall a_a4nm. a_a4nm -> StateT s_X4ot m_X4ov a_a4nm) :: *))}]
K.$fApplicativeStateT7 =
K.$fApplicativeStateT8
`cast` (forall (s_X4ot :: <*>_N).
forall (m_X4ov :: <* -> *>_N).
<Monad m_X4ov>_R
-> forall (a_a4nm :: <*>_N).
<a_a4nm>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4ot>_N <m_X4ov>_R <a_a4nm>_N)
; Sym K.N:StateT[0] <s_X4ot>_N <m_X4ov>_N <a_a4nm>_N
:: ((forall s_X4ot (m_X4ov :: * -> *).
Monad m_X4ov =>
forall a_a4nm. a_a4nm -> s_X4ot -> m_X4ov (a_a4nm, s_X4ot)) :: *)
~R#
((forall s_X4ot (m_X4ov :: * -> *).
Monad m_X4ov =>
forall a_a4nm. a_a4nm -> StateT s_X4ot m_X4ov a_a4nm) :: *))
-- RHS size: {terms: 7, types: 16, coercions: 0}
K.$fFunctorStateT2
:: forall s_a4lL (m_a4lM :: * -> *).
Functor m_a4lM =>
forall a_a4mz b_a4mA.
a_a4mz
-> S.StateT s_a4lL m_a4lM b_a4mA
-> s_a4lL
-> m_a4lM (a_a4mz, s_a4lL)
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <L,U(C(C1(U)),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
Tmpl= \ (@ s_a4lL)
(@ (m_a4lM :: * -> *))
($dFunctor_a4lN [Occ=Once] :: Functor m_a4lM)
(@ a_a4mz)
(@ b_a4mA)
(eta_B3 [Occ=Once] :: a_a4mz)
(eta1_B2 [Occ=Once] :: S.StateT s_a4lL m_a4lM b_a4mA)
(eta2_B1 [Occ=Once] :: s_a4lL) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT1
@ m_a4lM
@ s_a4lL
$dFunctor_a4lN
@ a_a4mz
@ b_a4mA
eta_B3
eta1_B2
eta2_B1}]
K.$fFunctorStateT2 =
\ (@ s_a4lL)
(@ (m_a4lM :: * -> *))
($dFunctor_a4lN :: Functor m_a4lM)
(@ a_a4mz)
(@ b_a4mA) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT1
@ m_a4lM @ s_a4lL $dFunctor_a4lN @ a_a4mz @ b_a4mA
-- RHS size: {terms: 1, types: 0, coercions: 36}
K.$fFunctorStateT1
:: forall s_a4lL (m_a4lM :: * -> *).
Functor m_a4lM =>
forall a_a42e b_a42f.
a_a42e
-> StateT s_a4lL m_a4lM b_a42f -> StateT s_a4lL m_a4lM a_a42e
[GblId,
Arity=4,
Caf=NoCafRefs,
Str=DmdType <L,U(C(C1(U)),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fFunctorStateT2
`cast` (forall (s_X4n1 :: <*>_N).
forall (m_X4n3 :: <* -> *>_N).
<Functor m_X4n3>_R
-> forall (a_X4nR :: <*>_N).
forall (b_X4nT :: <*>_N).
<a_X4nR>_R
-> Sym K.N:StateT[0] <s_X4n1>_N <m_X4n3>_N <b_X4nT>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4n1>_N <m_X4n3>_R <a_X4nR>_N)
; Sym K.N:StateT[0] <s_X4n1>_N <m_X4n3>_N <a_X4nR>_N
:: ((forall s_X4n1 (m_X4n3 :: * -> *).
Functor m_X4n3 =>
forall a_X4nR b_X4nT.
a_X4nR
-> S.StateT s_X4n1 m_X4n3 b_X4nT
-> s_X4n1
-> m_X4n3 (a_X4nR, s_X4n1)) :: *)
~R#
((forall s_X4n1 (m_X4n3 :: * -> *).
Functor m_X4n3 =>
forall a_X4nR b_X4nT.
a_X4nR
-> StateT s_X4n1 m_X4n3 b_X4nT
-> StateT s_X4n1 m_X4n3 a_X4nR) :: *))}]
K.$fFunctorStateT1 =
K.$fFunctorStateT2
`cast` (forall (s_X4n1 :: <*>_N).
forall (m_X4n3 :: <* -> *>_N).
<Functor m_X4n3>_R
-> forall (a_X4nR :: <*>_N).
forall (b_X4nT :: <*>_N).
<a_X4nR>_R
-> Sym K.N:StateT[0] <s_X4n1>_N <m_X4n3>_N <b_X4nT>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4n1>_N <m_X4n3>_R <a_X4nR>_N)
; Sym K.N:StateT[0] <s_X4n1>_N <m_X4n3>_N <a_X4nR>_N
:: ((forall s_X4n1 (m_X4n3 :: * -> *).
Functor m_X4n3 =>
forall a_X4nR b_X4nT.
a_X4nR
-> S.StateT s_X4n1 m_X4n3 b_X4nT
-> s_X4n1
-> m_X4n3 (a_X4nR, s_X4n1)) :: *)
~R#
((forall s_X4n1 (m_X4n3 :: * -> *).
Functor m_X4n3 =>
forall a_X4nR b_X4nT.
a_X4nR
-> StateT s_X4n1 m_X4n3 b_X4nT
-> StateT s_X4n1 m_X4n3 a_X4nR) :: *))
-- RHS size: {terms: 7, types: 16, coercions: 0}
K.$fFunctorStateT4
:: forall s_X4nf (m_X4nh :: * -> *).
Functor m_X4nh =>
forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> S.StateT s_X4nf m_X4nh a_a4lR -> S.StateT s_X4nf m_X4nh b_a4lS
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(C(U),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
Tmpl= \ (@ s_X4nf)
(@ (m_X4nh :: * -> *))
($dFunctor_X4nj [Occ=Once] :: Functor m_X4nh)
(@ a_a4lR)
(@ b_a4lS)
(eta_B2 [Occ=Once] :: a_a4lR -> b_a4lS)
(eta1_B1 [Occ=Once] :: S.StateT s_X4nf m_X4nh a_a4lR) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT_$cfmap
@ m_X4nh @ s_X4nf $dFunctor_X4nj @ a_a4lR @ b_a4lS eta_B2 eta1_B1}]
K.$fFunctorStateT4 =
\ (@ s_X4nf)
(@ (m_X4nh :: * -> *))
($dFunctor_X4nj :: Functor m_X4nh)
(@ a_a4lR)
(@ b_a4lS) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT_$cfmap
@ m_X4nh @ s_X4nf $dFunctor_X4nj @ a_a4lR @ b_a4lS
-- RHS size: {terms: 1, types: 0, coercions: 31}
K.$fFunctorStateT3
:: forall s_a4lL (m_a4lM :: * -> *).
Functor m_a4lM =>
forall a_a42b b_a42c.
(a_a42b -> b_a42c)
-> StateT s_a4lL m_a4lM a_a42b -> StateT s_a4lL m_a4lM b_a42c
[GblId,
Arity=3,
Caf=NoCafRefs,
Str=DmdType <L,U(C(U),A)>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= K.$fFunctorStateT4
`cast` (forall (s_X4nf :: <*>_N).
forall (m_X4nh :: <* -> *>_N).
<Functor m_X4nh>_R
-> forall (a_a4lR :: <*>_N).
forall (b_a4lS :: <*>_N).
<a_a4lR -> b_a4lS>_R
-> Sym K.N:StateT[0] <s_X4nf>_N <m_X4nh>_N <a_a4lR>_N
-> Sym K.N:StateT[0] <s_X4nf>_N <m_X4nh>_N <b_a4lS>_N
:: ((forall s_X4nf (m_X4nh :: * -> *).
Functor m_X4nh =>
forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> S.StateT s_X4nf m_X4nh a_a4lR
-> S.StateT s_X4nf m_X4nh b_a4lS) :: *)
~R#
((forall s_X4nf (m_X4nh :: * -> *).
Functor m_X4nh =>
forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> StateT s_X4nf m_X4nh a_a4lR
-> StateT s_X4nf m_X4nh b_a4lS) :: *))}]
K.$fFunctorStateT3 =
K.$fFunctorStateT4
`cast` (forall (s_X4nf :: <*>_N).
forall (m_X4nh :: <* -> *>_N).
<Functor m_X4nh>_R
-> forall (a_a4lR :: <*>_N).
forall (b_a4lS :: <*>_N).
<a_a4lR -> b_a4lS>_R
-> Sym K.N:StateT[0] <s_X4nf>_N <m_X4nh>_N <a_a4lR>_N
-> Sym K.N:StateT[0] <s_X4nf>_N <m_X4nh>_N <b_a4lS>_N
:: ((forall s_X4nf (m_X4nh :: * -> *).
Functor m_X4nh =>
forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> S.StateT s_X4nf m_X4nh a_a4lR
-> S.StateT s_X4nf m_X4nh b_a4lS) :: *)
~R#
((forall s_X4nf (m_X4nh :: * -> *).
Functor m_X4nh =>
forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> StateT s_X4nf m_X4nh a_a4lR
-> StateT s_X4nf m_X4nh b_a4lS) :: *))
-- RHS size: {terms: 12, types: 27, coercions: 45}
K.$fFunctorStateT
:: forall s_a4lE (m_a4lF :: * -> *).
Functor m_a4lF =>
Functor (StateT s_a4lE m_a4lF)
[GblId[DFunId],
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,U(C(U),A)>m,
Unf=DFun: \ (@ s_X4nm[ssk])
(@ (m_X4no[ssk] :: * -> *))
($dFunctor_X4nq :: Functor m_X4no[ssk]) ->
GHC.Base.C:Functor TYPE: StateT s_X4nm[ssk] m_X4no[ssk]
K.$fFunctorStateT3 @ s_X4nm[ssk] @ m_X4no[ssk] $dFunctor_X4nq
K.$fFunctorStateT1 @ s_X4nm[ssk] @ m_X4no[ssk] $dFunctor_X4nq]
K.$fFunctorStateT =
\ (@ s_X4nm)
(@ (m_X4no :: * -> *))
($dFunctor_X4nq :: Functor m_X4no) ->
GHC.Base.C:Functor
@ (StateT s_X4nm m_X4no)
((\ (@ a_a4lR) (@ b_a4lS) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT_$cfmap
@ m_X4no @ s_X4nm $dFunctor_X4nq @ a_a4lR @ b_a4lS)
`cast` (forall (a_a4lR :: <*>_N).
forall (b_a4lS :: <*>_N).
<a_a4lR -> b_a4lS>_R
-> Sym K.N:StateT[0] <s_X4nm>_N <m_X4no>_N <a_a4lR>_N
-> Sym K.N:StateT[0] <s_X4nm>_N <m_X4no>_N <b_a4lS>_N
:: ((forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> S.StateT s_X4nm m_X4no a_a4lR
-> S.StateT s_X4nm m_X4no b_a4lS) :: *)
~R#
((forall a_a4lR b_a4lS.
(a_a4lR -> b_a4lS)
-> StateT s_X4nm m_X4no a_a4lR
-> StateT s_X4nm m_X4no b_a4lS) :: *)))
((\ (@ a_X4nV) (@ b_X4nX) ->
Control.Monad.Trans.State.Strict.$fFunctorStateT1
@ m_X4no @ s_X4nm $dFunctor_X4nq @ a_X4nV @ b_X4nX)
`cast` (forall (a_X4nR :: <*>_N).
forall (b_X4nT :: <*>_N).
<a_X4nR>_R
-> Sym K.N:StateT[0] <s_X4nm>_N <m_X4no>_N <b_X4nT>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4nm>_N <m_X4no>_R <a_X4nR>_N)
; Sym K.N:StateT[0] <s_X4nm>_N <m_X4no>_N <a_X4nR>_N
:: ((forall a_X4nR b_X4nT.
a_X4nR
-> S.StateT s_X4nm m_X4no b_X4nT
-> s_X4nm
-> m_X4no (a_X4nR, s_X4nm)) :: *)
~R#
((forall a_X4nR b_X4nT.
a_X4nR
-> StateT s_X4nm m_X4no b_X4nT
-> StateT s_X4nm m_X4no a_X4nR) :: *)))
-- RHS size: {terms: 7, types: 12, coercions: 0}
K.$fApplicativeStateT9
:: forall s_a4nc (m_a4nd :: * -> *).
Monad m_a4nd =>
Functor (StateT s_a4nc m_a4nd)
[GblId,
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,1*U(1*U(1*U(C(U),A),A,A,A,A),A,A,A,A)>m,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
Tmpl= \ (@ s_X4oO)
(@ (m_X4oQ :: * -> *))
($dMonad_X4oS [Occ=Once] :: Monad m_X4oQ) ->
K.$fFunctorStateT
@ s_X4oO
@ m_X4oQ
(GHC.Base.$p1Applicative
@ m_X4oQ (GHC.Base.$p1Monad @ m_X4oQ $dMonad_X4oS))}]
K.$fApplicativeStateT9 =
\ (@ s_X4oO)
(@ (m_X4oQ :: * -> *))
($dMonad_X4oS :: Monad m_X4oQ) ->
K.$fFunctorStateT
@ s_X4oO
@ m_X4oQ
(GHC.Base.$p1Applicative
@ m_X4oQ (GHC.Base.$p1Monad @ m_X4oQ $dMonad_X4oS))
-- RHS size: {terms: 20, types: 29, coercions: 104}
K.$fApplicativeStateT
:: forall s_a4lG (m_a4lH :: * -> *).
Monad m_a4lH =>
Applicative (StateT s_a4lG m_a4lH)
[GblId[DFunId],
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),A)>m,
Unf=DFun: \ (@ s_X4oP[ssk])
(@ (m_X4oR[ssk] :: * -> *))
($dMonad_X4oT :: Monad m_X4oR[ssk]) ->
GHC.Base.C:Applicative TYPE: StateT s_X4oP[ssk] m_X4oR[ssk]
K.$fApplicativeStateT9 @ s_X4oP[ssk] @ m_X4oR[ssk] $dMonad_X4oT
K.$fApplicativeStateT7 @ s_X4oP[ssk] @ m_X4oR[ssk] $dMonad_X4oT
K.$fApplicativeStateT5 @ s_X4oP[ssk] @ m_X4oR[ssk] $dMonad_X4oT
K.$fApplicativeStateT3 @ s_X4oP[ssk] @ m_X4oR[ssk] $dMonad_X4oT
K.$fApplicativeStateT1 @ s_X4oP[ssk] @ m_X4oR[ssk] $dMonad_X4oT]
K.$fApplicativeStateT =
\ (@ s_X4oP)
(@ (m_X4oR :: * -> *))
($dMonad_X4oT :: Monad m_X4oR) ->
GHC.Base.C:Applicative
@ (StateT s_X4oP m_X4oR)
(K.$fApplicativeStateT9 @ s_X4oP @ m_X4oR $dMonad_X4oT)
((\ (@ a_a4nm) (eta_X1p :: a_a4nm) (eta1_B1 :: s_X4oP) ->
return @ m_X4oR $dMonad_X4oT @ (a_a4nm, s_X4oP) (eta_X1p, eta1_B1))
`cast` (forall (a_a4nm :: <*>_N).
<a_a4nm>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4oP>_N <m_X4oR>_R <a_a4nm>_N)
; Sym K.N:StateT[0] <s_X4oP>_N <m_X4oR>_N <a_a4nm>_N
:: ((forall a_a4nm.
a_a4nm -> s_X4oP -> m_X4oR (a_a4nm, s_X4oP)) :: *)
~R#
((forall a_a4nm. a_a4nm -> StateT s_X4oP m_X4oR a_a4nm) :: *)))
((K.$fApplicativeStateT6 @ s_X4oP @ m_X4oR $dMonad_X4oT)
`cast` (forall (a_a4nO :: <*>_N).
forall (b_a4nP :: <*>_N).
Sym K.N:StateT[0] <s_X4oP>_N <m_X4oR>_N <a_a4nO -> b_a4nP>_N
-> Sym K.N:StateT[0] <s_X4oP>_N <m_X4oR>_N <a_a4nO>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4oP>_N <m_X4oR>_R <b_a4nP>_N)
; Sym K.N:StateT[0] <s_X4oP>_N <m_X4oR>_N <b_a4nP>_N
:: ((forall a_a4nO b_a4nP.
S.StateT s_X4oP m_X4oR (a_a4nO -> b_a4nP)
-> S.StateT s_X4oP m_X4oR a_a4nO
-> s_X4oP
-> m_X4oR (b_a4nP, s_X4oP)) :: *)
~R#
((forall a_a4nO b_a4nP.
StateT s_X4oP m_X4oR (a_a4nO -> b_a4nP)
-> StateT s_X4oP m_X4oR a_a4nO
-> StateT s_X4oP m_X4oR b_a4nP) :: *)))
((K.$fApplicativeStateT4 @ s_X4oP @ m_X4oR $dMonad_X4oT)
`cast` (forall (a_a4ow :: <*>_N).
forall (b_a4ox :: <*>_N).
Sym K.N:StateT[0] <s_X4oP>_N <m_X4oR>_N <a_a4ow>_N
-> Sym K.N:StateT[0] <s_X4oP>_N <m_X4oR>_N <b_a4ox>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4oP>_N <m_X4oR>_R <b_a4ox>_N)
; Sym K.N:StateT[0] <s_X4oP>_N <m_X4oR>_N <b_a4ox>_N
:: ((forall a_a4ow b_a4ox.
S.StateT s_X4oP m_X4oR a_a4ow
-> S.StateT s_X4oP m_X4oR b_a4ox
-> s_X4oP
-> m_X4oR (b_a4ox, s_X4oP)) :: *)
~R#
((forall a_a4ow b_a4ox.
StateT s_X4oP m_X4oR a_a4ow
-> StateT s_X4oP m_X4oR b_a4ox
-> StateT s_X4oP m_X4oR b_a4ox) :: *)))
((K.$fApplicativeStateT2 @ s_X4oP @ m_X4oR $dMonad_X4oT)
`cast` (forall (a_a4pa :: <*>_N).
forall (b_a4pb :: <*>_N).
Sym K.N:StateT[0] <s_X4oP>_N <m_X4oR>_N <a_a4pa>_N
-> Sym K.N:StateT[0] <s_X4oP>_N <m_X4oR>_N <b_a4pb>_N
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4oP>_N <m_X4oR>_R <a_a4pa>_N)
; Sym K.N:StateT[0] <s_X4oP>_N <m_X4oR>_N <a_a4pa>_N
:: ((forall a_a4pa b_a4pb.
S.StateT s_X4oP m_X4oR a_a4pa
-> S.StateT s_X4oP m_X4oR b_a4pb
-> s_X4oP
-> m_X4oR (a_a4pa, s_X4oP)) :: *)
~R#
((forall a_a4pa b_a4pb.
StateT s_X4oP m_X4oR a_a4pa
-> StateT s_X4oP m_X4oR b_a4pb
-> StateT s_X4oP m_X4oR a_a4pa) :: *)))
-- RHS size: {terms: 20, types: 39, coercions: 75}
K.$fMonadStateT
:: forall s_a4lI (m_a4lJ :: * -> *).
Monad m_a4lJ =>
Monad (StateT s_a4lI m_a4lJ)
[GblId[DFunId],
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>m,
Unf=DFun: \ (@ s_X4rr[ssk])
(@ (m_X4rt[ssk] :: * -> *))
($dMonad_X4rv :: Monad m_X4rt[ssk]) ->
GHC.Base.C:Monad TYPE: StateT s_X4rr[ssk] m_X4rt[ssk]
K.$fApplicativeStateT @ s_X4rr[ssk] @ m_X4rt[ssk] $dMonad_X4rv
K.$fMonadStateT7 @ s_X4rr[ssk] @ m_X4rt[ssk] $dMonad_X4rv
K.$fMonadStateT5 @ s_X4rr[ssk] @ m_X4rt[ssk] $dMonad_X4rv
K.$fMonadStateT3 @ s_X4rr[ssk] @ m_X4rt[ssk] $dMonad_X4rv
K.$fMonadStateT1 @ s_X4rr[ssk] @ m_X4rt[ssk] $dMonad_X4rv]
K.$fMonadStateT =
\ (@ s_X4rr)
(@ (m_X4rt :: * -> *))
($dMonad_X4rv :: Monad m_X4rt) ->
GHC.Base.C:Monad
@ (StateT s_X4rr m_X4rt)
(K.$fApplicativeStateT @ s_X4rr @ m_X4rt $dMonad_X4rv)
((\ (@ a_a4pX) (@ b_a4pY) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$c>>=
@ m_X4rt @ s_X4rr $dMonad_X4rv @ a_a4pX @ b_a4pY)
`cast` (forall (a_a4pX :: <*>_N).
forall (b_a4pY :: <*>_N).
Sym K.N:StateT[0] <s_X4rr>_N <m_X4rt>_N <a_a4pX>_N
-> (<a_a4pX>_R
-> Sym K.N:StateT[0] <s_X4rr>_N <m_X4rt>_N <b_a4pY>_N)
-> Sym K.N:StateT[0] <s_X4rr>_N <m_X4rt>_N <b_a4pY>_N
:: ((forall a_a4pX b_a4pY.
S.StateT s_X4rr m_X4rt a_a4pX
-> (a_a4pX -> S.StateT s_X4rr m_X4rt b_a4pY)
-> S.StateT s_X4rr m_X4rt b_a4pY) :: *)
~R#
((forall a_a4pX b_a4pY.
StateT s_X4rr m_X4rt a_a4pX
-> (a_a4pX -> StateT s_X4rr m_X4rt b_a4pY)
-> StateT s_X4rr m_X4rt b_a4pY) :: *)))
((\ (@ a_a4qF) (@ b_a4qG) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$c>>
@ m_X4rt @ s_X4rr $dMonad_X4rv @ a_a4qF @ b_a4qG)
`cast` (forall (a_a4qF :: <*>_N).
forall (b_a4qG :: <*>_N).
Sym K.N:StateT[0] <s_X4rr>_N <m_X4rt>_N <a_a4qF>_N
-> Sym K.N:StateT[0] <s_X4rr>_N <m_X4rt>_N <b_a4qG>_N
-> Sym K.N:StateT[0] <s_X4rr>_N <m_X4rt>_N <b_a4qG>_N
:: ((forall a_a4qF b_a4qG.
S.StateT s_X4rr m_X4rt a_a4qF
-> S.StateT s_X4rr m_X4rt b_a4qG
-> S.StateT s_X4rr m_X4rt b_a4qG) :: *)
~R#
((forall a_a4qF b_a4qG.
StateT s_X4rr m_X4rt a_a4qF
-> StateT s_X4rr m_X4rt b_a4qG
-> StateT s_X4rr m_X4rt b_a4qG) :: *)))
((\ (@ a_X4sI) ->
Control.Monad.Trans.State.Strict.$fMonadStateT1
@ m_X4rt @ s_X4rr $dMonad_X4rv @ a_X4sI)
`cast` (forall (a_X4sd :: <*>_N).
<a_X4sd>_R
-> Sym
(Control.Monad.Trans.State.Strict.N:StateT[0]
<s_X4rr>_N <m_X4rt>_R <a_X4sd>_N)
; Sym K.N:StateT[0] <s_X4rr>_N <m_X4rt>_N <a_X4sd>_N
:: ((forall a_X4sd.
a_X4sd -> s_X4rr -> m_X4rt (a_X4sd, s_X4rr)) :: *)
~R#
((forall a_X4sd. a_X4sd -> StateT s_X4rr m_X4rt a_X4sd) :: *)))
((\ (@ a_a4rL) ->
Control.Monad.Trans.State.Strict.$fMonadStateT_$cfail
@ m_X4rt @ s_X4rr $dMonad_X4rv @ a_a4rL)
`cast` (forall (a_a4rL :: <*>_N).
<[Char]>_R -> Sym K.N:StateT[0] <s_X4rr>_N <m_X4rt>_N <a_a4rL>_N
:: ((forall a_a4rL. [Char] -> S.StateT s_X4rr m_X4rt a_a4rL) :: *)
~R#
((forall a_a4rL. [Char] -> StateT s_X4rr m_X4rt a_a4rL) :: *)))
-- RHS size: {terms: 6, types: 11, coercions: 0}
K.$fPrimMonadStateT2
:: forall (m_a4t5 :: * -> *) s_a4t6.
PrimMonad m_a4t5 =>
Monad (StateT s_a4t6 m_a4t5)
[GblId,
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,1*U(1*U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U)),A)>m,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
Tmpl= \ (@ (m_a4t5 :: * -> *))
(@ s_a4t6)
($dPrimMonad_a4t7 [Occ=Once] :: PrimMonad m_a4t5) ->
K.$fMonadStateT
@ s_a4t6
@ m_a4t5
(Control.Monad.Primitive.$p1PrimMonad @ m_a4t5 $dPrimMonad_a4t7)}]
K.$fPrimMonadStateT2 =
\ (@ (m_a4t5 :: * -> *))
(@ s_a4t6)
($dPrimMonad_a4t7 :: PrimMonad m_a4t5) ->
K.$fMonadStateT
@ s_a4t6
@ m_a4t5
(Control.Monad.Primitive.$p1PrimMonad @ m_a4t5 $dPrimMonad_a4t7)
-- RHS size: {terms: 8, types: 15, coercions: 0}
K.$fPrimMonadStateT
:: forall (m_a41w :: * -> *) s_a41x.
PrimMonad m_a41w =>
PrimMonad (StateT s_a41x m_a41w)
[GblId[DFunId],
Arity=1,
Caf=NoCafRefs,
Str=DmdType <L,U(U(U(U(U,U),U,U,U,U),U,U,U,U),C(U))>m,
Unf=DFun: \ (@ (m_a4t5[ssk] :: * -> *))
(@ s_a4t6[ssk])
($dPrimMonad_a4t7 :: PrimMonad m_a4t5[ssk]) ->
Control.Monad.Primitive.C:PrimMonad TYPE: StateT
s_a4t6[ssk] m_a4t5[ssk]
K.$fPrimMonadStateT2
@ m_a4t5[ssk] @ s_a4t6[ssk] $dPrimMonad_a4t7
K.$fPrimMonadStateT1
@ m_a4t5[ssk] @ s_a4t6[ssk] $dPrimMonad_a4t7]
K.$fPrimMonadStateT =
\ (@ (m_a4t5 :: * -> *))
(@ s_a4t6)
($dPrimMonad_a4t7 :: PrimMonad m_a4t5) ->
Control.Monad.Primitive.C:PrimMonad
@ (StateT s_a4t6 m_a4t5)
(K.$fPrimMonadStateT2 @ m_a4t5 @ s_a4t6 $dPrimMonad_a4t7)
(K.$fPrimMonadStateT1 @ m_a4t5 @ s_a4t6 $dPrimMonad_a4t7)
-- RHS size: {terms: 2, types: 0, coercions: 0}
K.$trModule2 :: GHC.Types.TrName
[GblId,
Caf=NoCafRefs,
Str=DmdType m1,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 20}]
K.$trModule2 = GHC.Types.TrNameS "main"#
-- RHS size: {terms: 2, types: 0, coercions: 0}
K.$trModule1 :: GHC.Types.TrName
[GblId,
Caf=NoCafRefs,
Str=DmdType m1,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 20}]
K.$trModule1 = GHC.Types.TrNameS "K"#
-- RHS size: {terms: 3, types: 0, coercions: 0}
K.$trModule :: GHC.Types.Module
[GblId,
Caf=NoCafRefs,
Str=DmdType m,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
K.$trModule = GHC.Types.Module K.$trModule2 K.$trModule1
-- RHS size: {terms: 2, types: 0, coercions: 0}
K.$tc'StateT1 :: GHC.Types.TrName
[GblId,
Caf=NoCafRefs,
Str=DmdType m1,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 40 20}]
K.$tc'StateT1 = GHC.Types.TrNameS "'StateT"#
-- RHS size: {terms: 5, types: 0, coercions: 0}
K.$tc'StateT :: GHC.Types.TyCon
[GblId,
Caf=NoCafRefs,
Str=DmdType m,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 50}]
K.$tc'StateT =
GHC.Types.TyCon
8261700209586878308##
13506212086962882202##
K.$trModule
K.$tc'StateT1
-- RHS size: {terms: 2, types: 0, coercions: 0}
K.$tcStateT1 :: GHC.Types.TrName
[GblId,
Caf=NoCafRefs,
Str=DmdType m1,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 40 20}]
K.$tcStateT1 = GHC.Types.TrNameS "StateT"#
-- RHS size: {terms: 5, types: 0, coercions: 0}
K.$tcStateT :: GHC.Types.TyCon
[GblId,
Caf=NoCafRefs,
Str=DmdType m,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 50}]
K.$tcStateT =
GHC.Types.TyCon
5890985703738789954##
14127540780153994336##
K.$trModule
K.$tcStateT1
{-# LANGUAGE Strict #-} -- Comment/uncommenting this
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module K where
import Control.Monad.Trans
import qualified Control.Monad.State.Strict as S
import Control.Monad.Primitive
newtype StateT s m a = StateT (S.StateT s m a) -- S is Control.Monad.State.Strict
deriving (Functor, Applicative, Monad, MonadTrans)
instance PrimMonad m => PrimMonad (StateT s m) where
type PrimState (StateT s m) = PrimState m
primitive ~a = lift (primitive a) ; {-# INLINE primitive #-}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment