Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- type Distiller tap r s m = Tap r s (Drinker tap m)
- (+&) :: (Closable tap, MonadCatch m) => tap m -> Drinker tap m a -> m a
- ($&) :: Monad m => tap m -> Drinker tap m a -> m a
- (++$) :: Applicative m => tap m -> Distiller tap r s m -> Tap r s m
- (++&) :: Applicative m => tap m -> Drinker tap m a -> m (tap m, a)
- reservingTap :: Monad m => (a -> Drinker (Tap r a) m (b, Distiller (Tap r a) r b m)) -> Distiller (Tap r a) r b m
- echo :: Monad m => Distiller (Tap r s) r s m
- mapping :: Monad m => (a -> b) -> Distiller (Tap r a) r b m
- traversing :: Monad m => (a -> m b) -> Distiller (Tap r a) r b m
- filtering :: (Monoid r, Monad m) => (a -> Bool) -> Distiller (Tap r a) r a m
- scanning :: Monad m => (b -> a -> b) -> b -> Distiller (Tap r a) r b m
- repeating :: (MonadDrunk (Tap r a) m, Semigroup r) => m b -> Tap r b m
Documentation
type Distiller tap r s m = Tap r s (Drinker tap m) Source #
Distiller tap m r s
is a stream transducer which has four parameters:
tap
inputr
request from the downstreams
outputm
underlying monad
This is also a Tap
.
Special combinators
(+&) :: (Closable tap, MonadCatch m) => tap m -> Drinker tap m a -> m a infix 6 Source #
Feed a tap to a drinker and close the used tap.
($&) :: Monad m => tap m -> Drinker tap m a -> m a infixr 7 Source #
Like (+&
) but discards the used tap.
($&) :: Distiller tap m r s -> Drinker (Tap r s) (Drinker tap m) a -> Drinker tap m a
Basic combinators
(++$) :: Applicative m => tap m -> Distiller tap r s m -> Tap r s m infixl 8 Source #
Attach a distiller to a tap.
Mnemonic:
+
Left operand is a tap.+
Returns a tap.$
Right operand is a distiller.
(++&) :: Applicative m => tap m -> Drinker tap m a -> m (tap m, a) infixr 7 Source #
Connect a tap with a Drinker. Flipped runDrinker
.
Mnemonic:
+
Left operand is a tap.+
Returns a tap (along with the result).&
Right operand is a Drinker.