| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Pipes.Fluid.ImpulseIO
Synopsis
- newtype ImpulseIO m a = ImpulseIO {
- impulsivelyIO :: Producer a m ()
- module Pipes.Fluid.Merge
Documentation
The applicative instance of this combines multiple Producers reactively ie, yields a value as soon as either or both of the input producers yields a value. This creates two threads each time this combinator is used. Warning: This means that the monadic effects are run in isolation from each other so if the monad is something like (StateT s IO), then the state will alternate between the two input producers, which is most likely not what you want.
Constructors
| ImpulseIO | |
Fields
| |
Instances
| Monad m => Functor (ImpulseIO m) # | |
| (MonadBaseControl IO m, Forall (Pure m)) => Applicative (ImpulseIO m) # | |
Defined in Pipes.Fluid.ImpulseIO | |
| (MonadBaseControl IO m, Forall (Pure m)) => Merge (ImpulseIO m) # | Reactively combines two producers, given initial values to use when the produce hasn't produced anything yet
Combine two signals, and returns a signal that emits
|
| (MonadBaseControl IO m, Forall (Pure m), Semigroup a) => Semigroup (ImpulseIO m a) # | |
| (MonadBaseControl IO m, Forall (Pure m), Semigroup a) => Monoid (ImpulseIO m a) # | |
| Wrapped (ImpulseIO m a) # | |
| ImpulseIO m1 a1 ~ t => Rewrapped (ImpulseIO m2 a2) t # | |
Defined in Pipes.Fluid.ImpulseIO | |
| type Unwrapped (ImpulseIO m a) # | |
Defined in Pipes.Fluid.ImpulseIO | |
module Pipes.Fluid.Merge