Safe Haskell | None |
---|

## Synopsis

- data LEvent a
- format_log :: Log.Msg -> Doc
- event :: LEvent a -> Maybe a
- is_event :: LEvent a -> Bool
- is_log :: LEvent a -> Bool
- log_or :: (d -> Bool) -> LEvent d -> Bool
- event_or :: (Log.Msg -> Bool) -> LEvent d -> Bool
- drop_while :: (a -> Bool) -> [LEvent a] -> [LEvent a]
- take_while :: (a -> Bool) -> [LEvent a] -> [LEvent a]
- either :: (d -> a) -> (Log.Msg -> a) -> LEvent d -> a
- map_log :: (Log.Msg -> Log.Msg) -> LEvent a -> LEvent a
- find_event :: (a -> Bool) -> [LEvent a] -> Maybe a
- events_of :: [LEvent d] -> [d]
- logs_of :: [LEvent d] -> [Log.Msg]
- write_logs :: Log.LogMonad m => [LEvent d] -> m [d]
- write_snd :: Log.LogMonad m => (a, [Log.Msg]) -> m a
- write_snd_prefix :: Log.LogMonad m => Text -> (a, [Log.Msg]) -> m a
- partition :: [LEvent d] -> ([d], [Log.Msg])
- map_accum :: (state -> a -> [a] -> (state, [b])) -> state -> [LEvent a] -> (state, [[LEvent b]])
- map_around :: ([a] -> a -> [a] -> [b]) -> [LEvent a] -> [[LEvent b]]
- zip :: [a] -> [LEvent x] -> [LEvent (a, x)]
- zip3 :: [a] -> [b] -> [LEvent x] -> [LEvent (a, b, x)]
- zip4 :: [a] -> [b] -> [c] -> [LEvent x] -> [LEvent (a, b, c, x)]

# LEvent

## Instances

Functor LEvent # | |

Foldable LEvent # | |

Defined in Derive.LEvent fold :: Monoid m => LEvent m -> m # foldMap :: Monoid m => (a -> m) -> LEvent a -> m # foldr :: (a -> b -> b) -> b -> LEvent a -> b # foldr' :: (a -> b -> b) -> b -> LEvent a -> b # foldl :: (b -> a -> b) -> b -> LEvent a -> b # foldl' :: (b -> a -> b) -> b -> LEvent a -> b # foldr1 :: (a -> a -> a) -> LEvent a -> a # foldl1 :: (a -> a -> a) -> LEvent a -> a # elem :: Eq a => a -> LEvent a -> Bool # maximum :: Ord a => LEvent a -> a # minimum :: Ord a => LEvent a -> a # | |

Traversable LEvent # | |

Eq a => Eq (LEvent a) # | |

Show a => Show (LEvent a) # | |

DeepSeq.NFData a => DeepSeq.NFData (LEvent a) # | |

Defined in Derive.LEvent | |

Pretty.Pretty d => Pretty.Pretty (LEvent d) # | |

format_log :: Log.Msg -> Doc Source #

A variation on `Log.format_msg`

, except this can format the stack nicely.

log_or :: (d -> Bool) -> LEvent d -> Bool Source #

Always true for logs. Useful for take and drop on events.

drop_while :: (a -> Bool) -> [LEvent a] -> [LEvent a] Source #

Drop while the predicate is true, but keep preceding logs.

write_logs :: Log.LogMonad m => [LEvent d] -> m [d] Source #

write_snd :: Log.LogMonad m => (a, [Log.Msg]) -> m a Source #

write_snd_prefix :: Log.LogMonad m => Text -> (a, [Log.Msg]) -> m a Source #

map_accum :: (state -> a -> [a] -> (state, [b])) -> state -> [LEvent a] -> (state, [[LEvent b]]) Source #

This is similar to `mapAccumL`

, but lifted into LEvents. It also
passes future events to the function.