-
-
Save Lysxia/355c4f1fa4ad0724c105d3baa42cbd4c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# 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 #-} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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