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

Safe HaskellNone
LanguageHaskell2010

FRP.Rhine.ResamplingBuffer

Synopsis

Documentation

data ResamplingBuffer m cla clb a b Source #

A stateful buffer from which one may get a value, or to which one may put a value, depending on the clocks. ResamplingBuffers can be clock-polymorphic, or specific to certain clocks.

  • m: Monad in which the ResamplingBuffer may have side effects
  • cla: The clock at which data enters the buffer
  • clb: The clock at which data leaves the buffer
  • a: The input type
  • b: The output type

Constructors

ResamplingBuffer 

Fields

  • put :: TimeInfo cla -> a -> m (ResamplingBuffer m cla clb a b)

    Store one input value of type a at a given time stamp, and return a continuation.

  • get :: TimeInfo clb -> m (b, ResamplingBuffer m cla clb a b)

    Retrieve one output value of type b at a given time stamp, and a continuation.

hoistResamplingBuffer :: (Monad m1, Monad m2) => (forall c. m1 c -> m2 c) -> ResamplingBuffer m1 cla clb a b -> ResamplingBuffer m2 cla clb a b Source #

Hoist a ResamplingBuffer along a monad morphism.