streamproc-1.6.2: Stream Processer Arrow

Copyright(c) 2007 by Shawn Garbett and Peter Simons
LicenseBSD3
Maintainersimons@cryp.to
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Control.Arrow.SP

Description

A continuation-based monadic stream processor implemented as an Arrow.

References:

Synopsis

Documentation

data SP m i o #

A generic stream processor.

Constructors

Put o (SP m i o) 
Get (i -> SP m i o) 
Block (m (SP m i o)) 

Instances

Monad m => Arrow (SP m) # 

Methods

arr :: (b -> c) -> SP m b c #

first :: SP m b c -> SP m (b, d) (c, d) #

second :: SP m b c -> SP m (d, b) (d, c) #

(***) :: SP m b c -> SP m b' c' -> SP m (b, b') (c, c') #

(&&&) :: SP m b c -> SP m b c' -> SP m b (c, c') #

Monad m => ArrowZero (SP m) # 

Methods

zeroArrow :: SP m b c #

Monad m => ArrowPlus (SP m) # 

Methods

(<+>) :: SP m b c -> SP m b c -> SP m b c #

Monad m => ArrowChoice (SP m) # 

Methods

left :: SP m b c -> SP m (Either b d) (Either c d) #

right :: SP m b c -> SP m (Either d b) (Either d c) #

(+++) :: SP m b c -> SP m b' c' -> SP m (Either b b') (Either c c') #

(|||) :: SP m b d -> SP m c d -> SP m (Either b c) d #

Monad m => ArrowLoop (SP m) # 

Methods

loop :: SP m (b, d) (c, d) -> SP m b c #

Monad m => Category * (SP m) # 

Methods

id :: cat a a #

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

runSP :: Monad m => SP m () () -> m () #

Evaluate a stream processor.

mapSP :: Monad m => (i -> m o) -> SP m i o #

Use a monadic transformer to map a stream.