pipes-3.1.0: Compositional pipelines

Safe HaskellSafe
LanguageHaskell98

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

Instances

ProxyTrans (StateP s) Source # 

Methods

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

PFunctor (StateP s) Source # 

Methods

hoistP :: (Monad m, Proxy p1) => (forall r1. p1 a' a b' b m r1 -> p2 a' a b' b n r1) -> StateP s p1 a' a b' b m r2 -> StateP s p2 a' a b' b n r2 Source #

MonadIOP p => MonadIOP (StateP s p) Source # 

Methods

liftIO_P :: MonadIO m => IO r -> StateP s p a' a b' b m r Source #

MonadPlusP p => MonadPlusP (StateP s p) Source # 

Methods

mzero_P :: Monad m => StateP s p a' a b' b m r Source #

mplus_P :: Monad m => StateP s p a' a b' b m r -> StateP s p a' a b' b m r -> StateP s p a' a b' b m r Source #

Proxy p => Proxy (StateP s p) Source # 

Methods

request :: Monad m => a' -> StateP s p a' a b' b m a Source #

respond :: Monad m => b -> StateP s p a' a b' b m b' Source #

(>->) :: Monad m => (b' -> StateP s p a' a b' b m r) -> (c' -> StateP s p b' b c' c m r) -> c' -> StateP s p a' a c' c m r Source #

(>~>) :: Monad m => (a -> StateP s p a' a b' b m r) -> (b -> StateP s p b' b c' c m r) -> a -> StateP s p a' a c' c m r Source #

return_P :: Monad m => r -> StateP s p a' a b' b m r Source #

(?>=) :: Monad m => StateP s p a' a b' b m r -> (r -> StateP s p a' a b' b m r') -> StateP s p a' a b' b m r' Source #

lift_P :: Monad m => m r -> StateP s p a' a b' b m r Source #

hoist_P :: Monad m => (forall r. m r -> n r) -> StateP s p a' a b' b m r' -> StateP s p a' a b' b n r' Source #

Proxy p => MonadTrans (StateP s p a' a b' b) Source # 

Methods

lift :: Monad m => m a -> StateP s p a' a b' b m a #

Proxy p => MFunctor (StateP s p a' a b' b) Source # 

Methods

hoist :: Monad m => (forall c. m c -> n c) -> StateP s p a' a b' b m b -> StateP s p a' a b' b n b Source #

(Proxy p, Monad m) => Monad (StateP s p a' a b' b m) Source # 

Methods

(>>=) :: StateP s p a' a b' b m a -> (a -> StateP s p a' a b' b m b) -> StateP s p a' a b' b m b #

(>>) :: StateP s p a' a b' b m a -> StateP s p a' a b' b m b -> StateP s p a' a b' b m b #

return :: a -> StateP s p a' a b' b m a #

fail :: String -> StateP s p a' a b' b m a #

(Proxy p, Monad m) => Functor (StateP s p a' a b' b m) Source # 

Methods

fmap :: (a -> b) -> StateP s p a' a b' b m a -> StateP s p a' a b' b m b #

(<$) :: a -> StateP s p a' a b' b m b -> StateP s p a' a b' b m a #

(Proxy p, Monad m) => Applicative (StateP s p a' a b' b m) Source # 

Methods

pure :: a -> StateP s p a' a b' b m a #

(<*>) :: StateP s p a' a b' b m (a -> b) -> StateP s p a' a b' b m a -> StateP s p a' a b' b m b #

(*>) :: StateP s p a' a b' b m a -> StateP s p a' a b' b m b -> StateP s p a' a b' b m b #

(<*) :: StateP s p a' a b' b m a -> StateP s p a' a b' b m b -> StateP s p a' a b' b m a #

(MonadIOP p, MonadIO m) => MonadIO (StateP s p a' a b' b m) Source # 

Methods

liftIO :: IO a -> StateP s p a' a b' b m a #

(MonadPlusP p, Monad m) => Alternative (StateP s p a' a b' b m) Source # 

Methods

empty :: StateP s p a' a b' b m a #

(<|>) :: StateP s p a' a b' b m a -> StateP s p a' a b' b m a -> StateP s p a' a b' b m a #

some :: StateP s p a' a b' b m a -> StateP s p a' a b' b m [a] #

many :: StateP s p a' a b' b m a -> StateP s p a' a b' b m [a] #

(MonadPlusP p, Monad m) => MonadPlus (StateP s p a' a b' b m) Source # 

Methods

mzero :: StateP s p a' a b' b m a #

mplus :: StateP s p a' a b' b m a -> StateP s p a' a b' b m a -> StateP s p a' a b' b m a #

runStateP :: 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 :: 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 :: (Proxy p, Monad m) => s -> StateP s p a' a b' b m r -> p a' a b' b m r Source #

Evaluate a StateP computation, but discard the final state

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

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

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

Evaluate a StateP computation, but discard the final result

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

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

State operations

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

Get the current state

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

Set the current state

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

Modify the current state using a function

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

Get the state filtered through a function