Module
Control.Monad.State.Reified
- Package
- purescript-focus-ui
- Repository
- mbid/purescript-focus-ui
#MonadStateV Source
type MonadStateV s m = { get :: m s, gets :: forall a. (s -> a) -> m a, modify :: (s -> s) -> m Unit, put :: s -> m Unit, state :: forall a. (s -> Tuple a s) -> m a }The datum of a MonadState, reified as record.
mapMonad and mapState induce the structure of a bifunctor
MonadStateV :: Monad x Lens' -> Type.
#fromStateFunction Source
fromStateFunction :: forall m s. (forall a. (s -> Tuple a s) -> m a) -> MonadStateV s mCreate a complete MonadStateV given just state, using default
implementations for the other functions.
#fromGetPutFunctions Source
fromGetPutFunctions :: forall m s. Monad m => m s -> (s -> m Unit) -> MonadStateV s mCreate a complete MonadStateV given just get and put, using default
implementations for the other functions.
#mapMonad Source
mapMonad :: forall n m s. (m ~> n) -> MonadStateV s m -> MonadStateV s nChange the underlying monad of a MonadStateV, given a morphism of monads.
#mapState Source
mapState :: forall m t s. Monad m => Lens' s t -> MonadStateV s m -> MonadStateV t mChange the state type of a MonadStateV, given a morphism a lens.
- Modules
- Control.
Monad. State. Reified - FocusUI
- Main