rhine-0.3.0.0: Functional Reactive Programming with type-level clocks

Safe HaskellNone
LanguageHaskell2010

FRP.Rhine.ResamplingBuffer.Util

Contents

Synopsis

Utilities to build ResamplingBuffers from smaller components

(>>-^) :: Monad m => ResamplingBuffer m cl1 cl2 a b -> SyncSF m cl2 b c -> ResamplingBuffer m cl1 cl2 a c infix 2 Source #

Postcompose a ResamplingBuffer with a matching SyncSF.

(^->>) :: Monad m => SyncSF m cl1 a b -> ResamplingBuffer m cl1 cl2 b c -> ResamplingBuffer m cl1 cl2 a c infix 1 Source #

Precompose a ResamplingBuffer with a matching SyncSF.

(*-*) :: Monad m => ResamplingBuffer m cl1 cl2 a b -> ResamplingBuffer m cl1 cl2 c d -> ResamplingBuffer m cl1 cl2 (a, c) (b, d) infix 4 Source #

Parallely compose two ResamplingBuffers.

timestamped :: Monad m => (forall b. ResamplingBuffer m cl clf b (f b)) -> ResamplingBuffer m cl clf a (f (a, TimeInfo cl)) Source #

Given a ResamplingBuffer where the output type depends on the input type polymorphically, we can produce a timestamped version that simply annotates every input value with the TimeInfo when it arrived.