pipes-3.3.0: Compositional pipelines

Safe HaskellSafe-Inferred

Control.Proxy.Trans.State

Contents

Description

This module provides the proxy transformer equivalent of StateT.

Synopsis

StateP

newtype StateP s p a' a b' b m r Source

The State proxy transformer

Constructors

StateP 

Fields

unStateP :: s -> p (a', s) (a, s) (b', s) (b, s) m (r, s)
 

Instances

ProxyTrans (StateP s) 
PFunctor (StateP s) 
MonadPlusP p => MonadPlusP (StateP s p) 
Proxy p => ProxyInternal (StateP s p) 
Proxy p => Proxy (StateP s p) 
Proxy p => MFunctor (StateP s p a' a b' b) 
Proxy p => MonadTrans (StateP s p a' a b' b) 
(Monad m, Proxy p) => Monad (StateP s p a' a b' b m) 
(Monad m, Proxy p) => Functor (StateP s p a' a b' b m) 
(Monad m, MonadPlusP p) => MonadPlus (StateP s p a' a b' b m) 
(Monad m, Proxy p) => Applicative (StateP s p a' a b' b m) 
(Monad m, MonadPlusP p) => Alternative (StateP s p a' a b' b m) 
(MonadIO m, Proxy p) => MonadIO (StateP s p a' a b' b m) 

state :: (Monad m, Proxy p) => (s -> (r, s)) -> StateP s p a' a b' b m rSource

Convert a State to a StateP

stateT :: (Monad m, Proxy p) => (s -> m (r, s)) -> StateP s p a' a b' b m rSource

Convert a StateT to a StateP

runStateP :: (Monad m, Proxy p) => s -> StateP s p a' a b' b m r -> p a' a b' b m (r, s)Source

Run a StateP computation, producing the final result and state

runStateK :: (Monad m, Proxy p) => s -> (q -> StateP s p a' a b' b m r) -> q -> p a' a b' b m (r, s)Source

Run a StateP 'K'leisli arrow, procuding the final result and state

evalStateP :: (Monad m, Proxy p) => s -> StateP s p a' a b' b m r -> p a' a b' b m rSource

Evaluate a StateP computation, but discard the final state

evalStateK :: (Monad m, Proxy p) => s -> (q -> StateP s p a' a b' b m r) -> q -> p a' a b' b m rSource

Evaluate a StateP 'K'leisli arrow, but discard the final state

execStateP :: (Monad m, Proxy p) => s -> StateP s p a' a b' b m r -> p a' a b' b m sSource

Evaluate a StateP computation, but discard the final result

execStateK :: (Monad m, Proxy p) => s -> (q -> StateP s p a' a b' b m r) -> q -> p a' a b' b m sSource

Evaluate a StateP 'K'leisli arrow, but discard the final result

State operations

get :: (Monad m, Proxy p) => StateP s p a' a b' b m sSource

Get the current state

put :: (Monad m, Proxy p) => s -> StateP s p a' a b' b m ()Source

Set the current state

modify :: (Monad m, Proxy p) => (s -> s) -> StateP s p a' a b' b m ()Source

Modify the current state using a function

gets :: (Monad m, Proxy p) => (s -> r) -> StateP s p a' a b' b m rSource

Get the state filtered through a function