hxt-9.3.0.1: A collection of tools for processing XML with Haskell.

Portabilityportable
Stabilityexperimental
MaintainerUwe Schmidt (uwe\@fh-wedel.de)
Safe HaskellSafe-Inferred

Control.Arrow.StateListArrow

Description

Implementation of list arrows with a state

Synopsis

Documentation

newtype SLA s a b Source

list arrow combined with a state

Constructors

SLA 

Fields

runSLA :: s -> a -> (s, [b])
 

Instances

Arrow (SLA s) => ArrowState s (SLA s) 
Category (SLA s) => Arrow (SLA s) 
Arrow (SLA s) => ArrowZero (SLA s) 
ArrowZero (SLA s) => ArrowPlus (SLA s) 
Arrow (SLA s) => ArrowChoice (SLA s) 
Arrow (SLA s) => ArrowApply (SLA s) 
Category (SLA s) 
(Arrow (SLA s), ArrowPlus (SLA s), ArrowZero (SLA s), ArrowApply (SLA s)) => ArrowList (SLA s) 
(Arrow (SLA s), ArrowList (SLA s)) => ArrowWNF (SLA s) 
Arrow (SLA s) => ArrowNF (SLA s) 
ArrowList (SLA s) => ArrowIf (SLA s) 
ArrowList (SLA s) => ArrowNavigatableTree (SLA s) 
(ArrowPlus (SLA s), ArrowIf (SLA s)) => ArrowTree (SLA s) 
ArrowXml (SLA s) => ArrowDTD (SLA s) 
(Arrow (SLA s), ArrowList (SLA s), ArrowTree (SLA s)) => ArrowXml (SLA s) 

fromSLA :: ArrowList a => s -> SLA s b c -> a b cSource

conversion of state list arrows into arbitray other list arrows.

allows running a state list arrow within another arrow:

example:

 ... >>> fromSLA 0 (... setState ... getState ... ) >>> ...

runs a state arrow with initial state 0 (e..g. an Int) within another arrow sequence