atl-17072: Arrow Transformer Library

Safe HaskellSafe
LanguageHaskell98

Control.Arrow.State

Documentation

newtype StateT s r a b Source #

Constructors

StateT 

Fields

Instances

(Arrow r, ArrowTransformer xT, Arrow (xT (StateT s r))) => ArrowState s (xT (StateT s r)) Source # 

Methods

get :: xT (StateT s r) () s Source #

put :: xT (StateT s r) s () Source #

Arrow r => ArrowState s (StateT s r) Source # 

Methods

get :: StateT s r () s Source #

put :: StateT s r s () Source #

ArrowTransformer (StateT s) Source # 

Methods

lift :: Arrow r => r a b -> StateT s r a b Source #

tmap :: (Arrow r, Arrow s) => (forall a b. r a b -> s a b) -> StateT s r a b -> StateT s s a b Source #

Category * r => Category * (StateT s r) Source # 

Methods

id :: cat a a #

(.) :: cat b c -> cat a b -> cat a c #

Arrow r => Arrow (StateT s r) Source # 

Methods

arr :: (b -> c) -> StateT s r b c #

first :: StateT s r b c -> StateT s r (b, d) (c, d) #

second :: StateT s r b c -> StateT s r (d, b) (d, c) #

(***) :: StateT s r b c -> StateT s r b' c' -> StateT s r (b, b') (c, c') #

(&&&) :: StateT s r b c -> StateT s r b c' -> StateT s r b (c, c') #

ArrowZero r => ArrowZero (StateT s r) Source # 

Methods

zeroArrow :: StateT s r b c #

ArrowPlus r => ArrowPlus (StateT s r) Source # 

Methods

(<+>) :: StateT s r b c -> StateT s r b c -> StateT s r b c #

ArrowChoice r => ArrowChoice (StateT s r) Source # 

Methods

left :: StateT s r b c -> StateT s r (Either b d) (Either c d) #

right :: StateT s r b c -> StateT s r (Either d b) (Either d c) #

(+++) :: StateT s r b c -> StateT s r b' c' -> StateT s r (Either b b') (Either c c') #

(|||) :: StateT s r b d -> StateT s r c d -> StateT s r (Either b c) d #

ArrowApply r => ArrowApply (StateT s r) Source # 

Methods

app :: StateT s r (StateT s r b c, b) c #

ArrowLoop r => ArrowLoop (StateT s r) Source # 

Methods

loop :: StateT s r (b, d) (c, d) -> StateT s r b c #