rhine-1.1: Functional Reactive Programming with type-level clocks
Safe HaskellSafe-Inferred
LanguageHaskell2010

FRP.Rhine.ResamplingBuffer.Util

Description

Several utilities to create ResamplingBuffers.

Synopsis

Utilities to build ResamplingBuffers from smaller components

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

Postcompose a ResamplingBuffer with a matching ClSF.

(^->>) :: Monad m => ClSF 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 ClSF.

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

Parallely compose two ResamplingBuffers.

(&-&) :: Monad m => ResamplingBuffer m cl1 cl2 a b -> ResamplingBuffer m cl1 cl2 a c -> ResamplingBuffer m cl1 cl2 a (b, c) infixl 4 Source #

Parallely compose two ResamplingBuffers, duplicating the input.

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.