arrows-0.4.4.2: Arrow classes and transformers
Copyright(c) Ross Paterson 2003
LicenseBSD-style (see the LICENSE file in the distribution)
MaintainerR.Paterson@city.ac.uk
Stabilityexperimental
Portabilitynon-portable (multi-parameter type classes)
Safe HaskellSafe-Inferred
LanguageHaskell98

Control.Arrow.Transformer.CoState

Description

Transformation of state readers.

TODO: define operations for this arrow.

Documentation

newtype CoStateArrow s a b c Source #

Constructors

CoStateArrow (a (s -> b) (s -> c)) 

Instances

Instances details
Category a => Category (CoStateArrow s a :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Arrow.Transformer.CoState

Methods

id :: forall (a0 :: k). CoStateArrow s a a0 a0 #

(.) :: forall (b :: k) (c :: k) (a0 :: k). CoStateArrow s a b c -> CoStateArrow s a a0 b -> CoStateArrow s a a0 c #

Arrow a => Arrow (CoStateArrow s a) Source # 
Instance details

Defined in Control.Arrow.Transformer.CoState

Methods

arr :: (b -> c) -> CoStateArrow s a b c #

first :: CoStateArrow s a b c -> CoStateArrow s a (b, d) (c, d) #

second :: CoStateArrow s a b c -> CoStateArrow s a (d, b) (d, c) #

(***) :: CoStateArrow s a b c -> CoStateArrow s a b' c' -> CoStateArrow s a (b, b') (c, c') #

(&&&) :: CoStateArrow s a b c -> CoStateArrow s a b c' -> CoStateArrow s a b (c, c') #

ArrowZero a => ArrowZero (CoStateArrow s a) Source # 
Instance details

Defined in Control.Arrow.Transformer.CoState

Methods

zeroArrow :: CoStateArrow s a b c #

ArrowPlus a => ArrowPlus (CoStateArrow s a) Source # 
Instance details

Defined in Control.Arrow.Transformer.CoState

Methods

(<+>) :: CoStateArrow s a b c -> CoStateArrow s a b c -> CoStateArrow s a b c #

ArrowLoop a => ArrowLoop (CoStateArrow s a) Source # 
Instance details

Defined in Control.Arrow.Transformer.CoState

Methods

loop :: CoStateArrow s a (b, d) (c, d) -> CoStateArrow s a b c #

Arrow a => Functor (CoStateArrow s a b) Source # 
Instance details

Defined in Control.Arrow.Transformer.CoState

Methods

fmap :: (a0 -> b0) -> CoStateArrow s a b a0 -> CoStateArrow s a b b0 #

(<$) :: a0 -> CoStateArrow s a b b0 -> CoStateArrow s a b a0 #

Arrow a => Applicative (CoStateArrow s a b) Source # 
Instance details

Defined in Control.Arrow.Transformer.CoState

Methods

pure :: a0 -> CoStateArrow s a b a0 #

(<*>) :: CoStateArrow s a b (a0 -> b0) -> CoStateArrow s a b a0 -> CoStateArrow s a b b0 #

liftA2 :: (a0 -> b0 -> c) -> CoStateArrow s a b a0 -> CoStateArrow s a b b0 -> CoStateArrow s a b c #

(*>) :: CoStateArrow s a b a0 -> CoStateArrow s a b b0 -> CoStateArrow s a b b0 #

(<*) :: CoStateArrow s a b a0 -> CoStateArrow s a b b0 -> CoStateArrow s a b a0 #

ArrowPlus a => Alternative (CoStateArrow s a b) Source # 
Instance details

Defined in Control.Arrow.Transformer.CoState

Methods

empty :: CoStateArrow s a b a0 #

(<|>) :: CoStateArrow s a b a0 -> CoStateArrow s a b a0 -> CoStateArrow s a b a0 #

some :: CoStateArrow s a b a0 -> CoStateArrow s a b [a0] #

many :: CoStateArrow s a b a0 -> CoStateArrow s a b [a0] #

ArrowPlus a => Semigroup (CoStateArrow s a b c) Source # 
Instance details

Defined in Control.Arrow.Transformer.CoState

Methods

(<>) :: CoStateArrow s a b c -> CoStateArrow s a b c -> CoStateArrow s a b c #

sconcat :: NonEmpty (CoStateArrow s a b c) -> CoStateArrow s a b c #

stimes :: Integral b0 => b0 -> CoStateArrow s a b c -> CoStateArrow s a b c #

ArrowPlus a => Monoid (CoStateArrow s a b c) Source # 
Instance details

Defined in Control.Arrow.Transformer.CoState

Methods

mempty :: CoStateArrow s a b c #

mappend :: CoStateArrow s a b c -> CoStateArrow s a b c -> CoStateArrow s a b c #

mconcat :: [CoStateArrow s a b c] -> CoStateArrow s a b c #