Skip to content

Instantly share code, notes, and snippets.

@Lysxia
Created February 16, 2018 14:25
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/355c4f1fa4ad0724c105d3baa42cbd4c to your computer and use it in GitHub Desktop.
Save Lysxia/355c4f1fa4ad0724c105d3baa42cbd4c to your computer and use it in GitHub Desktop.
{-# LANGUAGE Strict #-}
{-# 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 #-}
Magic: Wanted 33214052,
got 33214052
Version: Wanted [8, 0, 0, 2],
got [8, 0, 0, 2]
Way: Wanted [],
got []
interface K [family instance module] 8002
interface hash: 2ba13d105d663726ee79071edb0b0cb5
ABI hash: fb1c96627ce2410096f24bb364d39a4f
export-list hash: 7507e9172be2db27c2377252d129e920
orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
flag hash: 27ce79dd049f05e8b18759e21eb4a305
sig of: Nothing
used TH splices: False
where
exports:
StateT{StateT}
module dependencies:
package dependencies: base-4.9.1.0 ghc-prim-0.5.0.0
integer-gmp-1.0.0.1 mtl-2.2.1 primitive-0.6.2.0
transformers-0.5.2.0
orphans: GHC.Base GHC.Float Control.Monad.Trans.Error
family instance modules: Control.Applicative Data.Either
Data.Functor.Const Data.Functor.Identity Data.List.NonEmpty
Data.Monoid Data.Semigroup Data.Type.Equality Data.Version
Data.Void GHC.Exts GHC.Generics GHC.IO.Exception GHC.TypeLits
Control.Monad.Primitive
import -/ GHC.Base c4231c43c07e46080a26bf94094c7aa1
import -/ Prelude 22dd289b8469a8fa8dc81cab7b237771
import -/ Control.Monad.State.Strict eff0af50b9ed40c32939885d02cca72b
import -/ Control.Monad.Trans d69bc2e104a90fb918d853b240f7af2e
import -/ Control.Monad.Primitive 6f29f7c5aeee7400d08244e0179fc37e
import -/ Control.Monad.Trans.Class 45530f1305724ee3931a9be21b40ca7e
import -/ Control.Monad.Trans.State.Strict 978f397cc30fa26d55cf117e3751a6ed
94648cf9449106ba4c22b4b6bf2933cd
$fApplicativeStateT :: Monad m => Applicative (StateT s m)
DFunId
{- Arity: 1, HasNoCafRefs,
Strictness: <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),A)>m,
Inline: [ALWAYS] CONLIKE,
Unfolding: DFun: @ s @ (m :: * -> *) ($dMonad :: Monad m).
@ (StateT s m)
($fApplicativeStateT_$cp1Applicative @ s @ m $dMonad)
($fApplicativeStateT_$cpure @ s @ m $dMonad)
($fApplicativeStateT_$c<*> @ s @ m $dMonad)
($fApplicativeStateT_$c*> @ s @ m $dMonad)
($fApplicativeStateT_$c<* @ s @ m $dMonad) -}
60a9d122594657495b35096c2305d973
$fApplicativeStateT1 ::
Monad m =>
forall a b. StateT s m a -> StateT s m b -> s -> m (a, s)
{- Arity: 4, HasNoCafRefs,
Strictness: <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>,
Unfolding: InlineRule (4, True, False)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
@ b
(eta :: StateT s m a)
(eta1 :: StateT s m b)
(eta2 :: s) ->
$fApplicativeStateT1
@ m
@ s
($p1Applicative @ m ($p1Monad @ m $dMonad))
$dMonad
@ a
@ b
eta
eta1
eta2) -}
95f48b683b06add0cd05dbc51abd471b
$fApplicativeStateT2 ::
Monad m =>
forall a b. StateT s m a -> StateT s m b -> s -> m (b, s)
{- Arity: 4, HasNoCafRefs,
Strictness: <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>,
Unfolding: InlineRule (4, True, False)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
@ b
(eta :: StateT s m a)
(eta1 :: StateT s m b)
(eta2 :: s) ->
$fApplicativeStateT3
@ m
@ s
($p1Applicative @ m ($p1Monad @ m $dMonad))
$dMonad
@ a
@ b
eta
eta1
eta2) -}
918b1da0b23aaea400ec373e69d5feef
$fApplicativeStateT3 ::
Monad m =>
forall a b. StateT s m (a -> b) -> StateT s m a -> s -> m (b, s)
{- Arity: 4, HasNoCafRefs,
Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unfolding: (\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
@ b
(eta :: StateT s m (a -> b))
(eta1 :: StateT s m a)
(eta2 :: s) ->
>>=
@ m
$dMonad
@ (a -> b, s)
@ (b, s)
(eta `cast` (N:StateT[0] <s>_N <m>_R <a -> b>_N) eta2)
(\ (ds2 :: (a -> b, s)) ->
case ds2 of wild { (,) f s' ->
>>=
@ m
$dMonad
@ (a, s)
@ (b, s)
(eta1 `cast` (N:StateT[0] <s>_N <m>_R <a>_N) s')
(\ (ds3 :: (a, s)) ->
case ds3 of wild1 { (,) x s'' ->
return @ m $dMonad @ (b, s) (f x, s'') }) })) -}
e6df8d4920d8780edda8c455269fecc0
$fApplicativeStateT4 :: Monad m => forall a. a -> s -> m (a, s)
{- Arity: 3, HasNoCafRefs,
Strictness: <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,U><L,U>,
Unfolding: InlineRule (3, True, False)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
(eta :: a)
(eta1 :: s) ->
return @ m $dMonad @ (a, s) (eta, eta1)) -}
94648cf9449106ba4c22b4b6bf2933cd
$fApplicativeStateT_$c*> ::
Monad m => forall a b. StateT s m a -> StateT s m b -> StateT s m b
{- Arity: 4, HasNoCafRefs,
Strictness: <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>,
Unfolding: InlineRule (0, True, True)
$fApplicativeStateT2
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <b>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <b>_N)) -}
94648cf9449106ba4c22b4b6bf2933cd
$fApplicativeStateT_$c<* ::
Monad m => forall a b. StateT s m a -> StateT s m b -> StateT s m a
{- Arity: 4, HasNoCafRefs,
Strictness: <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>,
Unfolding: InlineRule (0, True, True)
$fApplicativeStateT1
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <a>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <a>_N)) -}
94648cf9449106ba4c22b4b6bf2933cd
$fApplicativeStateT_$c<*> ::
Monad m =>
forall a b. StateT s m (a -> b) -> StateT s m a -> StateT s m b
{- Arity: 4, HasNoCafRefs,
Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unfolding: InlineRule (0, True, True)
$fApplicativeStateT3
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
Sym (N:StateT[0]) <s>_N <m>_N <a -> b>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <b>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <b>_N)) -}
94648cf9449106ba4c22b4b6bf2933cd
$fApplicativeStateT_$cp1Applicative ::
Monad m => Functor (StateT s m)
{- Arity: 1, HasNoCafRefs,
Strictness: <L,1*U(1*U(1*U(C(U),A),A,A,A,A),A,A,A,A)>m,
Unfolding: InlineRule (1, True, False)
(\ @ s @ (m :: * -> *) ($dMonad :: Monad m) ->
$fFunctorStateT
@ s
@ m
($p1Applicative @ m ($p1Monad @ m $dMonad))) -}
94648cf9449106ba4c22b4b6bf2933cd
$fApplicativeStateT_$cpure ::
Monad m => forall a. a -> StateT s m a
{- Arity: 3, HasNoCafRefs,
Strictness: <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,U><L,U>,
Unfolding: InlineRule (0, True, True)
$fApplicativeStateT4
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N).
<a>_R
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <a>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <a>_N)) -}
94648cf9449106ba4c22b4b6bf2933cd
$fFunctorStateT :: Functor m => Functor (StateT s m)
DFunId
{- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(U),A)>m,
Inline: [ALWAYS] CONLIKE,
Unfolding: DFun: @ s @ (m :: * -> *) ($dFunctor :: Functor m).
@ (StateT s m)
($fFunctorStateT_$cfmap @ s @ m $dFunctor)
($fFunctorStateT_$c<$ @ s @ m $dFunctor) -}
03cda6c7803d7824ac4b483fbe0745f5
$fFunctorStateT1 ::
Functor m => forall a b. a -> StateT s m b -> s -> m (a, s)
{- Arity: 4, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>,
Unfolding: InlineRule (1, True, True)
(\ @ s
@ (m :: * -> *)
($dFunctor :: Functor m)
@ a
@ b
(eta :: a)
(eta1 :: StateT s m b)
(eta2 :: s) ->
$fFunctorStateT1 @ m @ s $dFunctor @ a @ b eta eta1 eta2) -}
45cf386d00782b3feaa8087084f7bbe1
$fFunctorStateT2 ::
Functor m => forall a b. (a -> b) -> StateT s m a -> StateT s m b
{- Arity: 3, HasNoCafRefs, Strictness: <L,U(C(U),A)>,
Unfolding: InlineRule (1, True, True)
(\ @ s
@ (m :: * -> *)
($dFunctor :: Functor m)
@ a
@ b
(eta :: a -> b)
(eta1 :: StateT s m a) ->
$fFunctorStateT_$cfmap @ m @ s $dFunctor @ a @ b eta eta1) -}
94648cf9449106ba4c22b4b6bf2933cd
$fFunctorStateT_$c<$ ::
Functor m => forall a b. a -> StateT s m b -> StateT s m a
{- Arity: 4, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>,
Unfolding: InlineRule (0, True, True)
$fFunctorStateT1
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Functor m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
<a>_R
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <a>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <a>_N)) -}
94648cf9449106ba4c22b4b6bf2933cd
$fFunctorStateT_$cfmap ::
Functor m => forall a b. (a -> b) -> StateT s m a -> StateT s m b
{- Arity: 3, HasNoCafRefs, Strictness: <L,U(C(U),A)>,
Unfolding: InlineRule (0, True, True)
$fFunctorStateT2
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Functor m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
<a -> b>_R
->_R Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N) -}
94648cf9449106ba4c22b4b6bf2933cd
$fMonadStateT :: Monad m => Monad (StateT s m)
DFunId
{- Arity: 1, HasNoCafRefs,
Strictness: <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>m,
Inline: [ALWAYS] CONLIKE,
Unfolding: DFun: @ s @ (m :: * -> *) ($dMonad :: Monad m).
@ (StateT s m)
($fApplicativeStateT @ s @ m $dMonad)
($fMonadStateT_$c>>= @ s @ m $dMonad)
($fMonadStateT_$c>> @ s @ m $dMonad)
($fMonadStateT_$creturn @ s @ m $dMonad)
($fMonadStateT_$cfail @ s @ m $dMonad) -}
f7ecf3908c827fcb7fade13e7f3d734f
$fMonadStateT1 :: Monad m => forall a. String -> StateT s m a
{- Arity: 2, HasNoCafRefs, Strictness: <L,U(A,A,A,A,C(U))>,
Unfolding: InlineRule (1, True, True)
(\ @ s @ (m :: * -> *) ($dMonad :: Monad m) @ a (eta :: String) ->
$fMonadStateT_$cfail @ m @ s $dMonad @ a eta) -}
3af5ef550a19a9bb58ffac7f3db19269
$fMonadStateT2 :: Monad m => forall a. a -> s -> m (a, s)
{- Arity: 3, HasNoCafRefs, Strictness: <L,U(A,A,A,C(U),A)>,
Unfolding: InlineRule (1, True, True)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
(eta :: a)
(eta1 :: s) ->
$fMonadStateT1 @ m @ s $dMonad @ a eta eta1) -}
e8e7a2fc8e96df82720f8e0c8a6a1608
$fMonadStateT3 ::
Monad m => forall a b. StateT s m a -> StateT s m b -> StateT s m b
{- Arity: 3, HasNoCafRefs,
Strictness: <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>,
Unfolding: InlineRule (1, True, True)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
@ b
(eta :: StateT s m a)
(eta1 :: StateT s m b) ->
$fMonadStateT_$c>> @ m @ s $dMonad @ a @ b eta eta1) -}
c44991ca229b6a86ba5b523bd5a480af
$fMonadStateT4 ::
Monad m =>
forall a b. StateT s m a -> (a -> StateT s m b) -> StateT s m b
{- Arity: 4, HasNoCafRefs, Strictness: <L,U(A,C(C1(U)),A,A,A)>,
Unfolding: InlineRule (1, True, False)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
@ b
(eta :: StateT s m a)
(eta1 :: a -> StateT s m b)
(eta2 :: s) ->
($ @ 'PtrRepLifted
@ (s -> m (b, s))
@ (StateT s m b)
(\ (tpl :: s -> m (b, s)) -> tpl)
`cast`
(<s -> m (b, s)>_R ->_R Sym (N:StateT[0] <s>_N <m>_R <b>_N))
(\ (s1 :: s) ->
>>=
@ m
$dMonad
@ (a, s)
@ (b, s)
(runStateT @ s @ m @ a eta s1)
(\ (ds :: (a, s)) ->
case ds of wild { (,) a1 s' ->
runStateT @ s @ m @ b (eta1 a1) s' })))
`cast`
(N:StateT[0] <s>_N <m>_R <b>_N)
eta2)
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
<StateT s m a>_R
->_R <a -> StateT s m b>_R
->_R Sym (N:StateT[0] <s>_N <m>_R <b>_N)) -}
94648cf9449106ba4c22b4b6bf2933cd
$fMonadStateT_$c>> ::
Monad m => forall a b. StateT s m a -> StateT s m b -> StateT s m b
{- Arity: 3, HasNoCafRefs,
Strictness: <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>,
Unfolding: InlineRule (0, True, True)
$fMonadStateT3
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N) -}
94648cf9449106ba4c22b4b6bf2933cd
$fMonadStateT_$c>>= ::
Monad m =>
forall a b. StateT s m a -> (a -> StateT s m b) -> StateT s m b
{- Arity: 4, HasNoCafRefs, Strictness: <L,U(A,C(C1(U)),A,A,A)>,
Unfolding: InlineRule (0, True, True)
$fMonadStateT4
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R (<a>_R ->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N)
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N) -}
94648cf9449106ba4c22b4b6bf2933cd
$fMonadStateT_$cfail :: Monad m => forall a. String -> StateT s m a
{- Arity: 2, HasNoCafRefs, Strictness: <L,U(A,A,A,A,C(U))>,
Unfolding: InlineRule (0, True, True)
$fMonadStateT1
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N).
<[Char]>_R ->_R Sym (N:StateT[0]) <s>_N <m>_N <a>_N) -}
94648cf9449106ba4c22b4b6bf2933cd
$fMonadStateT_$creturn :: Monad m => forall a. a -> StateT s m a
{- Arity: 3, HasNoCafRefs, Strictness: <L,U(A,A,A,C(U),A)>,
Unfolding: InlineRule (0, True, True)
$fMonadStateT2
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N).
<a>_R
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <a>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <a>_N)) -}
94648cf9449106ba4c22b4b6bf2933cd
$fMonadTransStateT :: MonadTrans (StateT s)
DFunId
{- Arity: 3, HasNoCafRefs,
Strictness: <S(LC(C(S))LLL),U(A,1*C1(C1(U)),A,C(U),A)><L,U><L,U>,
Inline: INLINE (sat-args=0),
Unfolding: InlineRule (0, False, True)
$fMonadTransStateT_$clift
`cast`
(forall (s :: <*>_N). Sym (N:MonadTrans[0] <StateT s>_N)) -}
94648cf9449106ba4c22b4b6bf2933cd
$fMonadTransStateT_$clift :: Monad m => m a -> StateT s m a
{- Arity: 3, HasNoCafRefs,
Strictness: <S(LC(C(S))LLL),U(A,1*C1(C1(U)),A,C(U),A)><L,U><L,U>,
Unfolding: InlineRule (0, True, True)
$fMonadTransStateT_$clift
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N) (a :: <*>_N).
<Monad m>_R
->_R <m a>_R
->_R Sym (N:StateT[0]) <s>_N <m>_N <a>_N) -}
94648cf9449106ba4c22b4b6bf2933cd
$fPrimMonadStateT :: PrimMonad m => PrimMonad (StateT s m)
DFunId
{- Arity: 1, HasNoCafRefs,
Strictness: <L,U(U(U(U(U,U),U,U,U,U),U,U,U,U),C(U))>m,
Inline: [ALWAYS] CONLIKE,
Unfolding: DFun: @ (m :: * -> *) @ s ($dPrimMonad :: PrimMonad m).
@ (StateT s m)
($fPrimMonadStateT_$cp1PrimMonad @ m @ s $dPrimMonad)
($fPrimMonadStateT_$cprimitive @ m @ s $dPrimMonad) -}
94648cf9449106ba4c22b4b6bf2933cd
$fPrimMonadStateT_$cp1PrimMonad ::
PrimMonad m => Monad (StateT s m)
{- Arity: 1, HasNoCafRefs,
Strictness: <L,1*U(1*U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U)),A)>m,
Unfolding: InlineRule (1, True, False)
(\ @ (m :: * -> *) @ s ($dPrimMonad :: PrimMonad m) ->
$fMonadStateT @ s @ m ($p1PrimMonad @ m $dPrimMonad)) -}
94648cf9449106ba4c22b4b6bf2933cd
$fPrimMonadStateT_$cprimitive ::
PrimMonad m =>
forall a.
(State# (PrimState (StateT s m))
-> (# State# (PrimState (StateT s m)), a #))
-> StateT s m a
{- Arity: 2, HasNoCafRefs, Strictness: <L,U(1*U,1*C1(U))><L,U>,
Inline: INLINE (sat-args=1),
Unfolding: InlineRule (2, False, False)
(\ @ (m :: * -> *)
@ s
($dPrimMonad :: PrimMonad m)
@ a
(eta :: State# (PrimState (StateT s m))
-> (# State# (PrimState (StateT s m)), a #)) ->
$fMonadTransStateT_$clift
@ s
@ m
@ a
($p1PrimMonad @ m $dPrimMonad)
(primitive
@ m
$dPrimMonad
@ a
eta
`cast`
((State# (D:R:PrimStateStateT[0] <m>_N <s>_N))_R
->_R ((#,#)
<'VoidRep>_R
<'PtrRepLifted>_R
(State# (D:R:PrimStateStateT[0] <m>_N <s>_N))_R
<a>_R)_R))) -}
df91697292955aff60f57803018133e1
$tc'StateT :: TyCon
{- HasNoCafRefs, Strictness: m,
Unfolding: (TyCon
8261700209586878308##
13506212086962882202##
$trModule
$tc'StateT1) -}
8557237b198a4f147eba51dd0447027d
$tc'StateT1 :: TrName
{- HasNoCafRefs, Strictness: m1, Unfolding: (TrNameS "'StateT"#) -}
f5680a9cec769d8714cf33288d5363eb
$tcStateT :: TyCon
{- HasNoCafRefs, Strictness: m,
Unfolding: (TyCon
5890985703738789954##
14127540780153994336##
$trModule
$tcStateT1) -}
822523bfb9052ac559e43ae68d3eb2ee
$tcStateT1 :: TrName
{- HasNoCafRefs, Strictness: m1, Unfolding: (TrNameS "StateT"#) -}
ac3fcef23417bf13d35ec78ce9c97ffe
$trModule :: Module
{- HasNoCafRefs, Strictness: m,
Unfolding: (Module $trModule2 $trModule1) -}
fb5453ca1aad3b7c1c7243ded8e95d46
$trModule1 :: TrName
{- HasNoCafRefs, Strictness: m1, Unfolding: (TrNameS "K"#) -}
9b41a7efb8d01e648e6d108a05ff2eb5
$trModule2 :: TrName
{- HasNoCafRefs, Strictness: m1, Unfolding: (TrNameS "main"#) -}
94648cf9449106ba4c22b4b6bf2933cd
axiom D:R:PrimStateStateT::
[(m :: * -> *), s] PrimState (StateT s m) = PrimState m
94648cf9449106ba4c22b4b6bf2933cd
type role StateT nominal representational nominal
newtype StateT s (m :: * -> *) a = StateT (StateT s m a)
instance Applicative [StateT] = $fApplicativeStateT
instance Functor [StateT] = $fFunctorStateT
instance Monad [StateT] = $fMonadStateT
instance MonadTrans [StateT] = $fMonadTransStateT
instance PrimMonad [StateT] = $fPrimMonadStateT
family instance PrimState [StateT] = D:R:PrimStateStateT
vectorised variables:
vectorised tycons:
vectorised reused tycons:
parallel variables:
parallel tycons:
trusted: none
require own pkg trusted: False
Magic: Wanted 33214052,
got 33214052
Version: Wanted [8, 0, 0, 2],
got [8, 0, 0, 2]
Way: Wanted [],
got []
interface K [family instance module] 8002
interface hash: d2163b0c39a4383ca49debb1de41d8af
ABI hash: 5f393b960e1f6eb55a7b0f6ef6e1d145
export-list hash: 7507e9172be2db27c2377252d129e920
orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
flag hash: fb030d045ef175ebccfbeef764bc2fbb
sig of: Nothing
used TH splices: False
where
exports:
StateT{StateT}
module dependencies:
package dependencies: base-4.9.1.0 ghc-prim-0.5.0.0
integer-gmp-1.0.0.1 mtl-2.2.1 primitive-0.6.2.0
transformers-0.5.2.0
orphans: GHC.Base GHC.Float Control.Monad.Trans.Error
family instance modules: Control.Applicative Data.Either
Data.Functor.Const Data.Functor.Identity Data.List.NonEmpty
Data.Monoid Data.Semigroup Data.Type.Equality Data.Version
Data.Void GHC.Exts GHC.Generics GHC.IO.Exception GHC.TypeLits
Control.Monad.Primitive
import -/ GHC.Base c4231c43c07e46080a26bf94094c7aa1
import -/ Prelude 22dd289b8469a8fa8dc81cab7b237771
import -/ Control.Monad.State.Strict eff0af50b9ed40c32939885d02cca72b
import -/ Control.Monad.Trans d69bc2e104a90fb918d853b240f7af2e
import -/ Control.Monad.Primitive 6f29f7c5aeee7400d08244e0179fc37e
import -/ Control.Monad.Trans.Class 45530f1305724ee3931a9be21b40ca7e
import -/ Control.Monad.Trans.State.Strict 978f397cc30fa26d55cf117e3751a6ed
f9fe72f7d2c60254f3899e2286deb1b4
$fApplicativeStateT :: Monad m => Applicative (StateT s m)
DFunId
{- Arity: 1, HasNoCafRefs,
Strictness: <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),A)>m,
Unfolding: DFun: @ s @ (m :: * -> *) ($dMonad :: Monad m).
@ (StateT s m)
($fApplicativeStateT9 @ s @ m $dMonad)
($fApplicativeStateT7 @ s @ m $dMonad)
($fApplicativeStateT5 @ s @ m $dMonad)
($fApplicativeStateT3 @ s @ m $dMonad)
($fApplicativeStateT1 @ s @ m $dMonad) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fApplicativeStateT1 ::
Monad m => forall a b. StateT s m a -> StateT s m b -> StateT s m a
{- Arity: 4, HasNoCafRefs,
Strictness: <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>,
Unfolding: InlineRule (0, True, True)
$fApplicativeStateT2
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <a>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <a>_N)) -}
8f104baf945cc9eb5f436106c73a7250
$fApplicativeStateT2 ::
Monad m =>
forall a b. StateT s m a -> StateT s m b -> s -> m (a, s)
{- Arity: 4, HasNoCafRefs,
Strictness: <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>,
Unfolding: InlineRule (4, True, False)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
@ b
(eta :: StateT s m a)
(eta1 :: StateT s m b)
(eta2 :: s) ->
$fApplicativeStateT1
@ m
@ s
($p1Applicative @ m ($p1Monad @ m $dMonad))
$dMonad
@ a
@ b
eta
eta1
eta2) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fApplicativeStateT3 ::
Monad m => forall a b. StateT s m a -> StateT s m b -> StateT s m b
{- Arity: 4, HasNoCafRefs,
Strictness: <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>,
Unfolding: InlineRule (0, True, True)
$fApplicativeStateT4
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <b>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <b>_N)) -}
e272734e766a6ddb5d7500a07e91379a
$fApplicativeStateT4 ::
Monad m =>
forall a b. StateT s m a -> StateT s m b -> s -> m (b, s)
{- Arity: 4, HasNoCafRefs,
Strictness: <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>,
Unfolding: InlineRule (4, True, False)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
@ b
(eta :: StateT s m a)
(eta1 :: StateT s m b)
(eta2 :: s) ->
$fApplicativeStateT3
@ m
@ s
($p1Applicative @ m ($p1Monad @ m $dMonad))
$dMonad
@ a
@ b
eta
eta1
eta2) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fApplicativeStateT5 ::
Monad m =>
forall a b. StateT s m (a -> b) -> StateT s m a -> StateT s m b
{- Arity: 4, HasNoCafRefs,
Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unfolding: InlineRule (0, True, True)
$fApplicativeStateT6
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
Sym (N:StateT[0]) <s>_N <m>_N <a -> b>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <b>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <b>_N)) -}
5dd539913d0da4e448ee77259fc30d51
$fApplicativeStateT6 ::
Monad m =>
forall a b. StateT s m (a -> b) -> StateT s m a -> s -> m (b, s)
{- Arity: 4, HasNoCafRefs,
Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,1*C1(U)><L,C(U)><L,U>,
Unfolding: (\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
@ b
(eta :: StateT s m (a -> b))
(eta1 :: StateT s m a)
(eta2 :: s) ->
>>=
@ m
$dMonad
@ (a -> b, s)
@ (b, s)
(eta `cast` (N:StateT[0] <s>_N <m>_R <a -> b>_N) eta2)
(\ (ds2 :: (a -> b, s)) ->
case ds2 of wild { (,) f s' ->
>>=
@ m
$dMonad
@ (a, s)
@ (b, s)
(eta1 `cast` (N:StateT[0] <s>_N <m>_R <a>_N) s')
(\ (ds3 :: (a, s)) ->
case ds3 of wild1 { (,) x s'' ->
return @ m $dMonad @ (b, s) (f x, s'') }) })) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fApplicativeStateT7 :: Monad m => forall a. a -> StateT s m a
{- Arity: 3, HasNoCafRefs,
Strictness: <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,U><L,U>,
Unfolding: InlineRule (0, True, True)
$fApplicativeStateT8
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N).
<a>_R
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <a>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <a>_N)) -}
9b206040256116e732f648a2b201fa7b
$fApplicativeStateT8 :: Monad m => forall a. a -> s -> m (a, s)
{- Arity: 3, HasNoCafRefs,
Strictness: <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,U><L,U>,
Unfolding: InlineRule (3, True, False)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
(eta :: a)
(eta1 :: s) ->
return @ m $dMonad @ (a, s) (eta, eta1)) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fApplicativeStateT9 :: Monad m => Functor (StateT s m)
{- Arity: 1, HasNoCafRefs,
Strictness: <L,1*U(1*U(1*U(C(U),A),A,A,A,A),A,A,A,A)>m,
Unfolding: InlineRule (1, True, False)
(\ @ s @ (m :: * -> *) ($dMonad :: Monad m) ->
$fFunctorStateT
@ s
@ m
($p1Applicative @ m ($p1Monad @ m $dMonad))) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fFunctorStateT :: Functor m => Functor (StateT s m)
DFunId
{- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(U),A)>m,
Unfolding: DFun: @ s @ (m :: * -> *) ($dFunctor :: Functor m).
@ (StateT s m)
($fFunctorStateT3 @ s @ m $dFunctor)
($fFunctorStateT1 @ s @ m $dFunctor) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fFunctorStateT1 ::
Functor m => forall a b. a -> StateT s m b -> StateT s m a
{- Arity: 4, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>,
Unfolding: InlineRule (0, True, True)
$fFunctorStateT2
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Functor m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
<a>_R
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <a>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <a>_N)) -}
e3359252fcaeabf461e1382831d9e7f5
$fFunctorStateT2 ::
Functor m => forall a b. a -> StateT s m b -> s -> m (a, s)
{- Arity: 4, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>,
Unfolding: InlineRule (1, True, True)
(\ @ s
@ (m :: * -> *)
($dFunctor :: Functor m)
@ a
@ b
(eta :: a)
(eta1 :: StateT s m b)
(eta2 :: s) ->
$fFunctorStateT1 @ m @ s $dFunctor @ a @ b eta eta1 eta2) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fFunctorStateT3 ::
Functor m => forall a b. (a -> b) -> StateT s m a -> StateT s m b
{- Arity: 3, HasNoCafRefs, Strictness: <L,U(C(U),A)>,
Unfolding: InlineRule (0, True, True)
$fFunctorStateT4
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Functor m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
<a -> b>_R
->_R Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N) -}
3f3baa67ee4cb51405b8b02238982fc0
$fFunctorStateT4 ::
Functor m => forall a b. (a -> b) -> StateT s m a -> StateT s m b
{- Arity: 3, HasNoCafRefs, Strictness: <L,U(C(U),A)>,
Unfolding: InlineRule (1, True, True)
(\ @ s
@ (m :: * -> *)
($dFunctor :: Functor m)
@ a
@ b
(eta :: a -> b)
(eta1 :: StateT s m a) ->
$fFunctorStateT_$cfmap @ m @ s $dFunctor @ a @ b eta eta1) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fMonadStateT :: Monad m => Monad (StateT s m)
DFunId
{- Arity: 1, HasNoCafRefs,
Strictness: <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>m,
Unfolding: DFun: @ s @ (m :: * -> *) ($dMonad :: Monad m).
@ (StateT s m)
($fApplicativeStateT @ s @ m $dMonad)
($fMonadStateT7 @ s @ m $dMonad)
($fMonadStateT5 @ s @ m $dMonad)
($fMonadStateT3 @ s @ m $dMonad)
($fMonadStateT1 @ s @ m $dMonad) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fMonadStateT1 :: Monad m => forall a. String -> StateT s m a
{- Arity: 2, HasNoCafRefs, Strictness: <L,U(A,A,A,A,C(U))>,
Unfolding: InlineRule (0, True, True)
$fMonadStateT2
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N).
<[Char]>_R ->_R Sym (N:StateT[0]) <s>_N <m>_N <a>_N) -}
adb19d88738e0aea43eb2c1c30e61718
$fMonadStateT2 :: Monad m => forall a. String -> StateT s m a
{- Arity: 2, HasNoCafRefs, Strictness: <L,U(A,A,A,A,C(U))>,
Unfolding: InlineRule (1, True, True)
(\ @ s @ (m :: * -> *) ($dMonad :: Monad m) @ a (eta :: String) ->
$fMonadStateT_$cfail @ m @ s $dMonad @ a eta) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fMonadStateT3 :: Monad m => forall a. a -> StateT s m a
{- Arity: 3, HasNoCafRefs, Strictness: <L,U(A,A,A,C(U),A)>,
Unfolding: InlineRule (0, True, True)
$fMonadStateT4
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N).
<a>_R
->_R Trans
(Sym (N:StateT[0] <s>_N <m>_R <a>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <a>_N)) -}
50eac3ef94061621f16fd12d37a1726a
$fMonadStateT4 :: Monad m => forall a. a -> s -> m (a, s)
{- Arity: 3, HasNoCafRefs, Strictness: <L,U(A,A,A,C(U),A)>,
Unfolding: InlineRule (1, True, True)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
(eta :: a)
(eta1 :: s) ->
$fMonadStateT1 @ m @ s $dMonad @ a eta eta1) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fMonadStateT5 ::
Monad m => forall a b. StateT s m a -> StateT s m b -> StateT s m b
{- Arity: 3, HasNoCafRefs,
Strictness: <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>,
Unfolding: InlineRule (0, True, True)
$fMonadStateT6
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N) -}
824cad015cdcd32e7a0dfd61ddc81059
$fMonadStateT6 ::
Monad m => forall a b. StateT s m a -> StateT s m b -> StateT s m b
{- Arity: 3, HasNoCafRefs,
Strictness: <L,U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U))>,
Unfolding: InlineRule (1, True, True)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
@ b
(eta :: StateT s m a)
(eta1 :: StateT s m b) ->
$fMonadStateT_$c>> @ m @ s $dMonad @ a @ b eta eta1) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fMonadStateT7 ::
Monad m =>
forall a b. StateT s m a -> (a -> StateT s m b) -> StateT s m b
{- Arity: 4, HasNoCafRefs, Strictness: <L,U(A,C(C1(U)),A,A,A)>,
Unfolding: InlineRule (0, True, True)
$fMonadStateT8
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
Sym (N:StateT[0]) <s>_N <m>_N <a>_N
->_R (<a>_R ->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N)
->_R Sym (N:StateT[0]) <s>_N <m>_N <b>_N) -}
11c88f182e89832eb6d7603e8de2c978
$fMonadStateT8 ::
Monad m =>
forall a b. StateT s m a -> (a -> StateT s m b) -> StateT s m b
{- Arity: 4, HasNoCafRefs, Strictness: <L,U(A,C(C1(U)),A,A,A)>,
Unfolding: InlineRule (1, True, False)
(\ @ s
@ (m :: * -> *)
($dMonad :: Monad m)
@ a
@ b
(eta :: StateT s m a)
(eta1 :: a -> StateT s m b)
(eta2 :: s) ->
($ @ 'PtrRepLifted
@ (s -> m (b, s))
@ (StateT s m b)
(\ (tpl :: s -> m (b, s)) -> tpl)
`cast`
(<s -> m (b, s)>_R ->_R Sym (N:StateT[0] <s>_N <m>_R <b>_N))
(\ (s1 :: s) ->
>>=
@ m
$dMonad
@ (a, s)
@ (b, s)
(runStateT @ s @ m @ a eta s1)
(\ (ds :: (a, s)) ->
case ds of wild { (,) a1 s' ->
runStateT @ s @ m @ b (eta1 a1) s' })))
`cast`
(N:StateT[0] <s>_N <m>_R <b>_N)
eta2)
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N).
<Monad m>_R
->_R forall (a :: <*>_N) (b :: <*>_N).
<StateT s m a>_R
->_R <a -> StateT s m b>_R
->_R Sym (N:StateT[0] <s>_N <m>_R <b>_N)) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fMonadTransStateT :: MonadTrans (StateT s)
DFunId
{- Arity: 3, HasNoCafRefs,
Strictness: <S(LC(C(S))LLL),U(A,1*C1(C1(U)),A,C(U),A)><L,U><L,U>,
Unfolding: InlineRule (0, False, True)
$fMonadTransStateT_$clift
`cast`
(forall (s :: <*>_N). Sym (N:MonadTrans[0] <StateT s>_N)) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fMonadTransStateT_$clift :: Monad m => m a -> StateT s m a
{- Arity: 3, HasNoCafRefs,
Strictness: <S(LC(C(S))LLL),U(A,1*C1(C1(U)),A,C(U),A)><L,U><L,U>,
Unfolding: InlineRule (0, True, True)
$fMonadTransStateT_$clift
`cast`
(forall (s :: <*>_N) (m :: <* -> *>_N) (a :: <*>_N).
<Monad m>_R
->_R <m a>_R
->_R Sym (N:StateT[0]) <s>_N <m>_N <a>_N) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fPrimMonadStateT :: PrimMonad m => PrimMonad (StateT s m)
DFunId
{- Arity: 1, HasNoCafRefs,
Strictness: <L,U(U(U(U(U,U),U,U,U,U),U,U,U,U),C(U))>m,
Unfolding: DFun: @ (m :: * -> *) @ s ($dPrimMonad :: PrimMonad m).
@ (StateT s m)
($fPrimMonadStateT2 @ m @ s $dPrimMonad)
($fPrimMonadStateT1 @ m @ s $dPrimMonad) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fPrimMonadStateT1 ::
PrimMonad m =>
forall a.
(State# (PrimState (StateT s m))
-> (# State# (PrimState (StateT s m)), a #))
-> StateT s m a
{- Arity: 2, HasNoCafRefs, Strictness: <L,U(1*U,1*C1(U))><L,U>,
Unfolding: (\ @ (m :: * -> *)
@ s
($dPrimMonad :: PrimMonad m)
@ a
(eta :: State# (PrimState (StateT s m))
-> (# State# (PrimState (StateT s m)), a #)) ->
let {
$dMonad :: Monad m = $p1PrimMonad @ m $dPrimMonad
} in
let {
m1 :: m a
= primitive
@ m
$dPrimMonad
@ a
eta
`cast`
((State# (D:R:PrimStateStateT[0] <m>_N <s>_N))_R
->_R ((#,#)
<'VoidRep>_R
<'PtrRepLifted>_R
(State# (D:R:PrimStateStateT[0] <m>_N <s>_N))_R
<a>_R)_R)
} in
(\ (s1 :: s) ->
>>=
@ m
$dMonad
@ a
@ (a, s)
m1
(\ (a1 :: a) -> return @ m $dMonad @ (a, s) (a1, s1)))
`cast`
(Trans
(Sym (N:StateT[0] <s>_N <m>_R <a>_N))
(Sym (N:StateT[0]) <s>_N <m>_N <a>_N))) -}
f9fe72f7d2c60254f3899e2286deb1b4
$fPrimMonadStateT2 :: PrimMonad m => Monad (StateT s m)
{- Arity: 1, HasNoCafRefs,
Strictness: <L,1*U(1*U(U(U(C(U),A),A,A,A,A),C(C1(U)),A,C(U),C(U)),A)>m,
Unfolding: InlineRule (1, True, False)
(\ @ (m :: * -> *) @ s ($dPrimMonad :: PrimMonad m) ->
$fMonadStateT @ s @ m ($p1PrimMonad @ m $dPrimMonad)) -}
df91697292955aff60f57803018133e1
$tc'StateT :: TyCon
{- HasNoCafRefs, Strictness: m,
Unfolding: (TyCon
8261700209586878308##
13506212086962882202##
$trModule
$tc'StateT1) -}
8557237b198a4f147eba51dd0447027d
$tc'StateT1 :: TrName
{- HasNoCafRefs, Strictness: m1, Unfolding: (TrNameS "'StateT"#) -}
f5680a9cec769d8714cf33288d5363eb
$tcStateT :: TyCon
{- HasNoCafRefs, Strictness: m,
Unfolding: (TyCon
5890985703738789954##
14127540780153994336##
$trModule
$tcStateT1) -}
822523bfb9052ac559e43ae68d3eb2ee
$tcStateT1 :: TrName
{- HasNoCafRefs, Strictness: m1, Unfolding: (TrNameS "StateT"#) -}
ac3fcef23417bf13d35ec78ce9c97ffe
$trModule :: Module
{- HasNoCafRefs, Strictness: m,
Unfolding: (Module $trModule2 $trModule1) -}
fb5453ca1aad3b7c1c7243ded8e95d46
$trModule1 :: TrName
{- HasNoCafRefs, Strictness: m1, Unfolding: (TrNameS "K"#) -}
9b41a7efb8d01e648e6d108a05ff2eb5
$trModule2 :: TrName
{- HasNoCafRefs, Strictness: m1, Unfolding: (TrNameS "main"#) -}
f9fe72f7d2c60254f3899e2286deb1b4
axiom D:R:PrimStateStateT::
[(m :: * -> *), s] PrimState (StateT s m) = PrimState m
f9fe72f7d2c60254f3899e2286deb1b4
type role StateT nominal representational nominal
newtype StateT s (m :: * -> *) a = StateT (StateT s m a)
instance Applicative [StateT] = $fApplicativeStateT
instance Functor [StateT] = $fFunctorStateT
instance Monad [StateT] = $fMonadStateT
instance MonadTrans [StateT] = $fMonadTransStateT
instance PrimMonad [StateT] = $fPrimMonadStateT
family instance PrimState [StateT] = D:R:PrimStateStateT
vectorised variables:
vectorised tycons:
vectorised reused tycons:
parallel variables:
parallel tycons:
trusted: none
require own pkg trusted: False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment