| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vgrep.Event
Synopsis
Event handling
An event handler is a function
handleEvent ::MonadStates m => e -> s ->Next(mRedraw)
where e is the event type and s is the state of the handler. The
Next type determines the type of action to be performed. The state
s is passed as a parameter so the handler can decide which type of
action to perform, while not being able to modify the state.
Event handlers form a Monoid where the first handler that triggers
will perform the action:
(handleSome <> handleOther) event state
is identical to
case handleSome event state of
Skip -> handleOther event state
action -> action
The type of action to be performed on an event.
Constructors
| Skip | Do not handle the event (fall-through to other event handlers) |
| Continue a | Handle the event by performing an action |
| Interrupt Interrupt | Interrupt the application |
Constructors
| Redraw | Indicates that the state has been changed visibly, so the screen should be refreshed. |
| Unchanged | The state has not changed or the change would not be visible, so refreshing the screen is not required. |
Constructors
| Suspend (forall m. MonadIO m => Environment -> m ()) | Suspend the application and run the action, e. g. invoking an external process, then resume the application. |
| Halt | Shut down. |
Dispatching Events
dispatchMap :: Ord e => Map e a -> e -> Next a Source #
Special case of dispatch where actions are looked up from a map.
Re-exports
A Map from keys k to values a.
The Semigroup operation for Map is union, which prefers
values from the left operand. If m1 maps a key k to a value
a1, and m2 maps the same key to a different value a2, then
their union m1 <> m2 maps k to a1.
Instances
| Eq2 Map | Since: containers-0.5.9 |
| Ord2 Map | Since: containers-0.5.9 |
Defined in Data.Map.Internal | |
| Show2 Map | Since: containers-0.5.9 |
| Functor (Map k) | |
| Foldable (Map k) | Folds in order of increasing key. |
Defined in Data.Map.Internal Methods fold :: Monoid m => Map k m -> m # foldMap :: Monoid m => (a -> m) -> Map k a -> m # foldMap' :: Monoid m => (a -> m) -> Map k a -> m # foldr :: (a -> b -> b) -> b -> Map k a -> b # foldr' :: (a -> b -> b) -> b -> Map k a -> b # foldl :: (b -> a -> b) -> b -> Map k a -> b # foldl' :: (b -> a -> b) -> b -> Map k a -> b # foldr1 :: (a -> a -> a) -> Map k a -> a # foldl1 :: (a -> a -> a) -> Map k a -> a # elem :: Eq a => a -> Map k a -> Bool # maximum :: Ord a => Map k a -> a # minimum :: Ord a => Map k a -> a # | |
| Traversable (Map k) | Traverses in order of increasing key. |
| (FromJSONKey k, Ord k) => FromJSON1 (Map k) | |
| Eq k => Eq1 (Map k) | Since: containers-0.5.9 |
| Ord k => Ord1 (Map k) | Since: containers-0.5.9 |
Defined in Data.Map.Internal | |
| (Ord k, Read k) => Read1 (Map k) | Since: containers-0.5.9 |
Defined in Data.Map.Internal | |
| Show k => Show1 (Map k) | Since: containers-0.5.9 |
| Ord k => IsList (Map k v) | Since: containers-0.5.6.2 |
| (Eq k, Eq a) => Eq (Map k a) | |
| (Data k, Data a, Ord k) => Data (Map k a) | |
Defined in Data.Map.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Map k a -> c (Map k a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Map k a) # toConstr :: Map k a -> Constr # dataTypeOf :: Map k a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Map k a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Map k a)) # gmapT :: (forall b. Data b => b -> b) -> Map k a -> Map k a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Map k a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Map k a -> r # gmapQ :: (forall d. Data d => d -> u) -> Map k a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Map k a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Map k a -> m (Map k a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Map k a -> m (Map k a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Map k a -> m (Map k a) # | |
| (Ord k, Ord v) => Ord (Map k v) | |
| (Ord k, Read k, Read e) => Read (Map k e) | |
| (Show k, Show a) => Show (Map k a) | |
| Ord k => Semigroup (Map k v) | |
| Ord k => Monoid (Map k v) | |
| (FromJSONKey k, Ord k, FromJSON v) => FromJSON (Map k v) | |
| (NFData k, NFData a) => NFData (Map k a) | |
Defined in Data.Map.Internal | |
| type Item (Map k v) | |
Defined in Data.Map.Internal | |
| type Index (Map k a) | |
Defined in Lens.Micro.GHC | |
| type IxValue (Map k a) | |
Defined in Lens.Micro.GHC | |
fromList :: Ord k => [(k, a)] -> Map k a #
O(n*log n). Build a map from a list of key/value pairs. See also fromAscList.
If the list contains more than one value for the same key, the last value
for the key is retained.
If the keys of the list are ordered, linear-time implementation is used,
with the performance equal to fromDistinctAscList.
fromList [] == empty fromList [(5,"a"), (3,"b"), (5, "c")] == fromList [(5,"c"), (3,"b")] fromList [(5,"c"), (3,"b"), (5, "a")] == fromList [(5,"a"), (3,"b")]