Maintainer | Ertugrul Soeylemez <es@ertes.de> |
---|

Wires for generating and manipulating events.

- after :: forall e t (>~). (ArrowClock >~, Monoid e, Num t, Ord t, Time >~ ~ t) => Wire e >~ t ()
- at :: (ArrowClock >~, Monoid e, Ord t, Time >~ ~ t) => Wire e >~ t ()
- delayEvents :: forall b e t (>~). (ArrowClock >~, Monoid e, Num t, Ord t, Time >~ ~ t) => Wire e >~ ([b], t) b
- delayEventsSafe :: forall b e t (>~). (ArrowClock >~, Monoid e, Num t, Ord t, Time >~ ~ t) => Wire e >~ (([b], t), Int) b
- periodically :: forall e t (>~). (ArrowClock >~, Monoid e, Num t, Ord t, Time >~ ~ t) => Wire e >~ t ()
- inhibit :: Wire e >~ e b
- never :: Monoid e => Wire e >~ a b
- asSoonAs :: Monoid e => Wire e >~ Bool ()
- edge :: forall e (>~). Monoid e => Wire e >~ Bool ()
- require :: Monoid e => Wire e >~ Bool ()
- forbid :: Monoid e => Wire e >~ Bool ()
- while :: Monoid e => Wire e >~ Bool ()
- notYet :: Monoid e => Wire e >~ b b
- once :: Monoid e => Wire e >~ b b

# Event generation

## Timed

after :: forall e t (>~). (ArrowClock >~, Monoid e, Num t, Ord t, Time >~ ~ t) => Wire e >~ t ()Source

Produces once after the input time delta has passed.

- Depends: Current instant.
- Inhibits: Always except at the target instant.

at :: (ArrowClock >~, Monoid e, Ord t, Time >~ ~ t) => Wire e >~ t ()Source

Produces once as soon as the current time is later than or equal to the current time and never again.

- Depends: Current instant.
- Inhibits: Always except at the target instant.

delayEvents :: forall b e t (>~). (ArrowClock >~, Monoid e, Num t, Ord t, Time >~ ~ t) => Wire e >~ ([b], t) bSource

Delays each incoming event (left signal) by the given time delta (right signal). The time delta at the instant the event happened is significant.

- Depends: Current instant.
- Inhibits: When no delayed event happened.

delayEventsSafe :: forall b e t (>~). (ArrowClock >~, Monoid e, Num t, Ord t, Time >~ ~ t) => Wire e >~ (([b], t), Int) bSource

Delays each incoming event (left signal) by the given time delta (middle signal). The time delta at the instant the event happened is significant. The right signal gives a maximum number of events queued. When exceeded, new events are dropped, until there is enough room.

- Depends: Current instant.
- Inhibits: When no delayed event happened.

periodically :: forall e t (>~). (ArrowClock >~, Monoid e, Num t, Ord t, Time >~ ~ t) => Wire e >~ t ()Source

Periodically produces an event. The period is given by the input time delta and can change over time. The current time delta with respect to the last production is significant. Does not produce at the first instant, unless the first delta is nonpositive.

- Depends: Current instant.
- Inhibits: Always except at the periodic ticks.

## Unconditional inhibition

inhibit :: Wire e >~ e bSource

Never produces. Always inhibits with the current input signal.

- Depends: Current instant.
- Inhibits: Always.