CV-0.3.5.3: OpenCV based machine vision library

Safe HaskellSafe-Infered

Utils.Stream

Synopsis

Documentation

data Stream m a

Stream of monadic values

Constructors

Terminated 
Value (m (a, Stream m a)) 

Instances

Monad m => Functor (Stream m)

Map over a stream

Monad m => Applicative (Stream m) 

sideEffect :: Monad m => (a -> m ()) -> Stream m a -> Stream m a

Attaching side effects

listToStream :: Monad m => [a] -> Stream m a

Repeating stream

repeatS :: Monad m => a -> Stream m a

repeatSM :: Monad m => m a -> Stream m a

iterateS :: Monad m => (a -> m a) -> a -> Stream m a

Create a stream by iterating a monadic action

foldS :: Monad m => (a -> t -> a) -> a -> Stream m t -> m a

Pure and monadic left fold over a stream

foldSM :: Monad m => (a -> t -> m a) -> a -> Stream m t -> m a

time :: (t, t1) -> t

Merge two (time)streams

value :: (t, t1) -> t1

mergeTimeStreams :: (Monad m, Ord t1) => t -> t2 -> Stream m (t1, t) -> Stream m (t1, t2) -> Stream m (t1, (t, t2))

mergeTimeStreamsWith :: (Monad m, Ord t2) => t -> t1 -> (t -> t1 -> t3) -> Stream m (t2, t) -> Stream m (t2, t1) -> Stream m (t2, t3)

mergeManyW :: (Monad m, Ord t) => [t1] -> (t1 -> t1 -> t1) -> [Stream m (t, t1)] -> Stream m (t, t1)

mergeS :: (Monad m, Ord t2) => Stream m (t2, t) -> Stream m (t2, t1) -> Stream m (LRB (t2, t) (t2, (t, t1)) (t2, t1))

data LRB a b c

Constructors

L a 
B b 
R c 

Instances

(Show a, Show b, Show c) => Show (LRB a b c) 

mergeE :: Monad m => (t, t2) -> Stream m (LRB (t1, t) (t1, (t, t2)) (t1, t2)) -> Stream m (t1, (t, t2))

push :: Monad m => a -> Stream m a -> Stream m a

zipS :: Applicative f => f a1 -> f a -> f (a1, a)

sequenceS :: Monad m => Stream m (m a) -> Stream m a

mapMS :: Monad m => (a -> m b) -> Stream m a -> Stream m b

dropS :: Monad m => Int -> Stream m a -> Stream m a

Drop elements from the stream. Due to stream structure, this operation cannot fail gracefully when dropping more elements than what is found in the stream

takeS :: Monad m => Int -> Stream m a -> Stream m a

takeWhileS :: Monad m => (a -> Bool) -> Stream m a -> Stream m a

consS :: Monad m => a -> Stream m a -> Stream m a

pairS :: Monad m => Stream m a -> Stream m (a, a)

terminateOn :: Monad m => (a -> Bool) -> Stream m a -> Stream m a

runStream :: Monad m => Stream m a -> m [a]

runStream_ :: Monad m => Stream m t -> m ()

runLast :: Monad m => a -> Stream m a -> m a

runLast1 :: Monad m => Stream m a -> m a