- data Event t a
- type Behavior t = Behavior t
- collect :: Event t a -> Event t [a]
- fromCalm :: Event t a -> Event t a
- interpretModel :: (forall t. Event t a -> Event t b) -> [a] -> IO [Maybe b]
- interpretPushGraph :: (forall t. Event t a -> Event t b) -> [a] -> IO [Maybe b]
- module Control.Applicative
- never :: Event t a
- unionWith :: (a -> a -> a) -> Event t a -> Event t a -> Event t a
- filterE :: (a -> Bool) -> Event t a -> Event t a
- accumE :: a -> Event t (a -> a) -> Event t a
- apply :: Behavior t (a -> b) -> Event t a -> Event t b
- stepper :: a -> Event t a -> Behavior t a
- filterJust :: Event t (Maybe a) -> Event t a
- accumB :: a -> Event t (a -> a) -> Behavior t a
- mapAccum :: acc -> Event t (acc -> (x, acc)) -> (Event t x, Behavior t acc)
- class (Functor f, Functor g) => Apply f g where
Experimental module: API change very likely.
Event type that disallows simultaneous event occurrences.
The combinators behave essentially as their counterparts in Reactive.Banana.Combinators.
Convert event with possible simultaneous occurrences
Event with a single occurrence.
Convert event with single occurrences into event with possible simultaneous occurrences
Interpret with model implementation. Useful for testing.
Interpret with push-based implementation. Useful for testing.
Merge two event streams of the same type. Combine simultaneous values if necessary.
Allow all events that fulfill the predicate, discard the rest.
accumE function accumulates a stream of events.
Apply a time-varying function to a stream of events.
Construct a time-varying function from an initial value and a stream of new values.
Note: all accumulation functions are strict in the accumulated value!
acc -> (x,acc) is the order used by
accumB function is similar to a strict left fold,
It starts with an initial value and combines it with incoming events.
Class for overloading the
Convenience function, similar to