Copyright | (c) 2012 Ertugrul Soeylemez |
---|---|
License | BSD3 |
Maintainer | Ertugrul Soeylemez <es@ertes.de> |
Safe Haskell | None |
Language | Haskell2010 |
Event wires.
- afterI :: Monoid e => Int -> Event e m a
- eventsI :: Monoid e => [Int] -> Event e m a
- forI :: Monoid e => Int -> Event e m a
- notYet :: Monoid e => Event e m a
- once :: Monoid e => Event e m a
- periodicallyI :: Monoid e => Int -> Event e m a
- changed :: (Eq a, Monoid e) => Event e m a
- inject :: Injectable e f => Wire e m (f b) b
- asSoonAs :: Monoid e => (a -> Bool) -> Event e m a
- edge :: Monoid e => (a -> Bool) -> Event e m a
- forbid :: Monoid e => (a -> Bool) -> Event e m a
- require :: Monoid e => (a -> Bool) -> Event e m a
- unless :: Monoid e => (a -> Bool) -> Event e m a
- until :: Monoid e => (a -> Bool) -> Event e m a
- when :: Monoid e => (a -> Bool) -> Event e m a
- while :: Monoid e => (a -> Bool) -> Event e m a
- after :: Monoid e => Time -> Event e m a
- events :: Monoid e => [Time] -> Event e m a
- for :: Monoid e => Time -> Event e m a
- periodically :: Monoid e => Time -> Event e m a
- inhibit :: e -> Wire e m a b
Instants
afterI :: Monoid e => Int -> Event e m a Source
Produce after the given number of instants.
- Depends: current instant when producing.
- Inhibits: until the given number of instants has passed.
eventsI :: Monoid e => [Int] -> Event e m a Source
Variant of periodically
in number of instants instead of amount
of time.
- Depends: current instant when producing.
- Inhibits: between the given intervals.
forI :: Monoid e => Int -> Event e m a Source
Produce for the given number of instants.
- Depends: current instant when producing.
- Inhibits: after the given number of instants has passed.
notYet :: Monoid e => Event e m a Source
Inhibit once.
- Depends: current instant after the first instant.
- Inhibits: in the first instant.
once :: Monoid e => Event e m a Source
Produce once.
- Depends: current instant in the first instant.
- Inhibits: after the first instant.
periodicallyI :: Monoid e => Int -> Event e m a Source
Produce once periodically with the given number of instants as the interval.
- Depends: current instant when producing.
- Inhibits: between the intervals.
Signal analysis
changed :: (Eq a, Monoid e) => Event e m a Source
Produce when the signal has changed and at the first instant.
- Depends: current instant.
- Inhibits: after the first instant when the input has changed.
inject :: Injectable e f => Wire e m (f b) b Source
Inject the input signal. Please keep in mind that in application code it is almost always wrong to use this wire. It should only be used to interact with other frameworks/abstractions, and even then it's probably just a last resort.
When you want to write your own wires, consider using mkPure
or the
various variants of it.
- Depends: current instant.
- Inhibits: depending on input signal (see
Injectable
).
Predicate-based
asSoonAs :: Monoid e => (a -> Bool) -> Event e m a Source
Inhibit until the given predicate holds for the input signal. Then produce forever.
- Depends: current instant, if the predicate is strict. Once true, on current instant forever.
- Inhibits: until the predicate becomes true.
unless :: Monoid e => (a -> Bool) -> Event e m a Source
Produce when the given predicate on the input signal does not hold.
- Depends: current instant if the predicate is strict.
- Inhibits: When the predicate is true.
until :: Monoid e => (a -> Bool) -> Event e m a Source
Produce until the given predicate on the input signal holds, then inhibit forever.
- Depends: current instant, if the predicate is strict.
- Inhibits: forever as soon as the predicate becomes true.
when :: Monoid e => (a -> Bool) -> Event e m a Source
Produce when the given predicate on the input signal holds.
- Depends: current instant if the predicate is strict.
- Inhibits: When the predicate is false.
while :: Monoid e => (a -> Bool) -> Event e m a Source
Produce while the given predicate on the input signal holds, then inhibit forever.
- Depends: current instant, if the predicate is strict.
- Inhibits: forever as soon as the predicate becomes false.
Time
after :: Monoid e => Time -> Event e m a Source
Produce after the given amount of time.
- Depends: current instant when producing, time.
- Inhibits: until the given amount of time has passed.
events :: Monoid e => [Time] -> Event e m a Source
Produce once periodically. The production periods are given by the
argument list. When it's [1,2,3]
it produces after one second,
then after two more seconds and finally after three more seconds.
When the list is exhausted, it never produces again.
- Depends: current instant when producing, time.
- Inhibits: between the given intervals.
for :: Monoid e => Time -> Event e m a Source
Produce for the given amount of time.
- Depends: current instant when producing, time.
- Inhibits: after the given amount of time has passed.
periodically :: Monoid e => Time -> Event e m a Source
Produce once periodically with the given time interval.
- Depends: current instant when producing, time.
- Inhibits: between the intervals.