Copyright | (c) 2023 Yamada Ryo |
---|---|
License | MPL-2.0 (see the file LICENSE) |
Maintainer | ymdfield@outlook.jp |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | GHC2021 |
Control.Effect.Interpreter.Heftia.State
Description
Interpreter for the State
effect class.
Synopsis
- runState :: forall s r a fr u c. (Freer c fr, Union u, c (Eff u fr '[] r), c (StateT s (Eff u fr '[] r)), Applicative (Eff u fr '[] r)) => s -> Eff u fr '[] (LState s ': r) a -> Eff u fr '[] r (s, a)
- evalState :: forall s r fr u c. (Freer c fr, Union u, c (Eff u fr '[] r), c (StateT s (Eff u fr '[] r)), Applicative (Eff u fr '[] r)) => s -> Eff u fr '[] (LState s ': r) ~> Eff u fr '[] r
- execState :: forall s r a fr u c. (Freer c fr, Union u, c (Eff u fr '[] r), c (StateT s (Eff u fr '[] r)), Applicative (Eff u fr '[] r)) => s -> Eff u fr '[] (LState s ': r) a -> Eff u fr '[] r s
- runStateT :: forall s r fr u c. (Freer c fr, Union u, c (StateT s (Eff u fr '[] r)), c (Eff u fr '[] r), Applicative (Eff u fr '[] r)) => Eff u fr '[] (LState s ': r) ~> StateT s (Eff u fr '[] r)
- runStateK :: forall s r a fr u c. (MonadFreer c fr, Union u, HFunctor (u '[]), Member u (Ask s) (LAsk s ': r), c (Eff u fr '[] (LAsk s ': r)), Applicative (Eff u fr '[] r)) => s -> Eff u fr '[] (LState s ': r) a -> Eff u fr '[] r (s, a)
- runStateIORef :: forall s r a fr u c. (Freer c fr, Union u, MonadIO (Eff u fr '[] r)) => s -> Eff u fr '[] (LState s ': r) a -> Eff u fr '[] r (s, a)
- transactState :: forall s r fr u c. (Freer c fr, Union u, Member u (State s) r, Monad (Eff u fr '[] r), c (StateT s (Eff u fr '[] r))) => Eff u fr '[] r ~> Eff u fr '[] r
- fuseStateEffect :: Applicative f => State s ~> StateT s f
Documentation
runState :: forall s r a fr u c. (Freer c fr, Union u, c (Eff u fr '[] r), c (StateT s (Eff u fr '[] r)), Applicative (Eff u fr '[] r)) => s -> Eff u fr '[] (LState s ': r) a -> Eff u fr '[] r (s, a) Source #
evalState :: forall s r fr u c. (Freer c fr, Union u, c (Eff u fr '[] r), c (StateT s (Eff u fr '[] r)), Applicative (Eff u fr '[] r)) => s -> Eff u fr '[] (LState s ': r) ~> Eff u fr '[] r Source #
execState :: forall s r a fr u c. (Freer c fr, Union u, c (Eff u fr '[] r), c (StateT s (Eff u fr '[] r)), Applicative (Eff u fr '[] r)) => s -> Eff u fr '[] (LState s ': r) a -> Eff u fr '[] r s Source #
runStateT :: forall s r fr u c. (Freer c fr, Union u, c (StateT s (Eff u fr '[] r)), c (Eff u fr '[] r), Applicative (Eff u fr '[] r)) => Eff u fr '[] (LState s ': r) ~> StateT s (Eff u fr '[] r) Source #
runStateK :: forall s r a fr u c. (MonadFreer c fr, Union u, HFunctor (u '[]), Member u (Ask s) (LAsk s ': r), c (Eff u fr '[] (LAsk s ': r)), Applicative (Eff u fr '[] r)) => s -> Eff u fr '[] (LState s ': r) a -> Eff u fr '[] r (s, a) Source #
runStateIORef :: forall s r a fr u c. (Freer c fr, Union u, MonadIO (Eff u fr '[] r)) => s -> Eff u fr '[] (LState s ': r) a -> Eff u fr '[] r (s, a) Source #
transactState :: forall s r fr u c. (Freer c fr, Union u, Member u (State s) r, Monad (Eff u fr '[] r), c (StateT s (Eff u fr '[] r))) => Eff u fr '[] r ~> Eff u fr '[] r Source #
fuseStateEffect :: Applicative f => State s ~> StateT s f Source #