|
|
|
| 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 |