Modulefused-effects-1.1.2.7Haskell2010
Control.Carrier.State.Lazy
A carrier for the State effect that refrains from evaluating its state until necessary. This is less efficient than Control.Carrier.State.Strict but allows some cyclic computations to terminate that would loop infinitely in a strict state carrier.
Note that the parameter order in runState, evalState, and execState is reversed compared the equivalent functions provided by transformers. This is an intentional decision made to enable the composition of effect handlers with . without invoking flip.
- 1 type
- 3 values
- Packagefused-effects-1.1.2.7
- Exports4
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceLazy.hs
Lazy state carrier
4 declarationsConstructors
StateC (s -> m (s, a))
Instances10MonadTrans, Monad, Functor, MonadFix, MonadFail, Applicative, …
MonadTrans (StateC s)Defined in fused-effects-1.1.2.7 · Control.Carrier.State.LazyMonad m => Monad (StateC s m)Defined in fused-effects-1.1.2.7 · Control.Carrier.State.LazyFunctor m => Functor (StateC s m)Defined in fused-effects-1.1.2.7 · Control.Carrier.State.LazyMonadFix m => MonadFix (StateC s m)Defined in fused-effects-1.1.2.7 · Control.Carrier.State.LazyMonadFail m => MonadFail (StateC s m)Defined in fused-effects-1.1.2.7 · Control.Carrier.State.LazyMonad m => Applicative (StateC s m)Defined in fused-effects-1.1.2.7 · Control.Carrier.State.Lazy(Alternative m, Monad m) => Alternative (StateC s m)Defined in fused-effects-1.1.2.7 · Control.Carrier.State.Lazy(Alternative m, Monad m) => MonadPlus (StateC s m)Defined in fused-effects-1.1.2.7 · Control.Carrier.State.LazyMonadIO m => MonadIO (StateC s m)Defined in fused-effects-1.1.2.7 · Control.Carrier.State.LazyAlgebra sig m => Algebra (State s :+: sig) (StateC s m)Defined in fused-effects-1.1.2.7 · Control.Carrier.State.Lazy
State effect
0 declarationsmodule Control.Effect.State