|
|
|
Description |
A simple event mechanism
|
|
Synopsis |
|
|
|
Documentation |
|
|
Every event needs a selector, which should identify the type of event
| | Instances | |
|
|
|
Every event needs to know its selector and its source
| | Methods | getSelector :: beta -> delta | Source |
|
| | Instances | |
|
|
class (Monad gamma, Event beta delta) => EventSource alpha beta gamma delta | alpha -> beta, alpha -> gamma where | Source |
|
Everything which is an event source needs this
alpha is the Notifier
beta is the event
gamma is the monad
delta is the event selector
| | Methods | | | | | | | | Reimplement this in instances to make triggering of events possible
| | triggerEvent :: alpha -> beta -> gamma beta | Source |
| Returns the event, so that you may get values back from an event
Args: Notifier, Event
| | registerEvent :: alpha -> delta -> (beta -> gamma beta) -> gamma (Maybe Unique) | Source |
| | | use Left to register and Right to unregister
Args: Notifier, EventSelector, Unique
|
| | Instances | |
|
|
type Handlers beta gamma delta = Map delta [(Unique, beta -> gamma beta)] | Source |
|
This shows the implementation of the event mechnism
|
|
registerEvents :: EventSource alpha beta gamma delta => alpha -> [delta] -> (beta -> gamma beta) -> gamma [Unique] | Source |
|
|
Produced by Haddock version 2.6.1 |