Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype Emitter m a = Emitter {}
- liftE :: MonadConc m => Emitter (STM m) a -> Emitter m a
- emap :: Monad m => (a -> m (Maybe b)) -> Emitter m a -> Emitter m b
- keeps :: Monad m => ((b -> Constant (First b) b) -> a -> Constant (First b) a) -> Emitter m a -> Emitter m b
- eRead :: (Functor m, Read a) => Emitter m Text -> Emitter m (Either Text a)
- eParse :: Functor m => Parser a -> Emitter m Text -> Emitter m (Either Text a)
Documentation
an Emitter
"emits" values of type a. A Source & a Producer (of a
s) are the two other alternative but overloaded metaphors out there.
An Emitter 'reaches into itself' for the value to emit, where itself is an opaque thing from the pov of usage. An Emitter is named for its main action: it emits.
Instances
Monad m => Monad (Emitter m) Source # | |
Functor m => Functor (Emitter m) Source # | |
Applicative m => Applicative (Emitter m) Source # | |
(Monad m, Alternative m) => Alternative (Emitter m) Source # | |
(Alternative m, Monad m) => MonadPlus (Emitter m) Source # | |
(Alternative m, Monad m) => Semigroup (Emitter m a) Source # | |
(Alternative m, Monad m) => Monoid (Emitter m a) Source # | |
emap :: Monad m => (a -> m (Maybe b)) -> Emitter m a -> Emitter m b Source #
like a monadic mapMaybe. (See witherable)
:: Monad m | |
=> ((b -> Constant (First b) b) -> a -> Constant (First b) a) | |
-> Emitter m a | |
-> Emitter m b |
prism handler