Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- type Distiller p q m = Tap (Patron p q m)
- (+&) :: (Monoid r, CloseRequest r, Monad m) => Tap m r s -> Patron r s m a -> m a
- ($&) :: (Monoid r, Monad m) => Distiller p q m r s -> Patron r s m a -> Patron p q m a
- (++$) :: (Monoid p, Monad m) => Tap m p q -> Distiller p q m r s -> Tap m r s
- ($$$) :: (Monoid r, Monad m) => Distiller p q m r s -> Distiller r s m t u -> Distiller p q m t u
- (++&) :: (Monoid r, Monad m) => Tap m r s -> Patron r s m a -> m (Tap m r s, a)
- ($$&) :: (Monoid r, Monad m) => Distiller p q m r s -> Patron r s m a -> Patron p q m (Distiller p q m r s, a)
- mapping :: Functor m => (a -> b) -> Distiller r a m r b
- traversing :: Monad m => (a -> m b) -> Distiller r a m r b
- filtering :: (Monoid r, Functor m) => (a -> Bool) -> Distiller r a m r a
- scanning :: (Monoid r, Functor m) => (b -> a -> b) -> b -> Distiller r a m r b
- scanningMaybe :: (Monoid r, Functor m) => (b -> a -> b) -> b -> Distiller r (Maybe a) m r (Maybe b)
- throughMaybe :: (Monoid r, Monad m) => Distiller p q m r s -> Distiller p (Maybe q) m r (Maybe s)
- boozeOn :: (Monoid r, Monad m) => (forall x. n x -> m x) -> (r -> [s] -> Tap m r s -> a -> m z) -> r -> [s] -> Tap m r s -> Boozer r s n a -> m z
- distillWith :: (Monoid p, Monad m) => (forall x. n x -> m x) -> Tap m p q -> Distiller p q n r s -> Tap m r s
Documentation
type Distiller p q m = Tap (Patron p q m) Source #
'Distiller p q m r s' is a stream transducer which has five parameters:
p
request to the upstreamq
inputm
underlying monadr
request from the downstreams
output
Special combinators
(+&) :: (Monoid r, CloseRequest r, Monad m) => Tap m r s -> Patron r s m a -> m a infix 6 Source #
Connect a tap with a patron and close the used tap.
($&) :: (Monoid r, Monad m) => Distiller p q m r s -> Patron r s m a -> Patron p q m a infixr 7 Source #
Like $&&
but discards the used distiller.
Attaching a distiller
(++$) :: (Monoid p, Monad m) => Tap m p q -> Distiller p q m r s -> Tap m r s infixl 7 Source #
Attach a distiller to a tap.
Mnemonic:
+
Left operand is a tap.+
Returns a tap.$
Right operand is a distiller.
($$$) :: (Monoid r, Monad m) => Distiller p q m r s -> Distiller r s m t u -> Distiller p q m t u infixl 8 Source #
Full duplex composition of distillers.
Mnemonic:
$
Left operand is a distiller.$
Returns a distiller.$
Right operand is a distiller.
Patron
(++&) :: (Monoid r, Monad m) => Tap m r s -> Patron r s m a -> m (Tap m r s, a) infix 6 Source #
Connect a tap with a patron.
Mnemonic:
+
Left operand is a tap.+
Returns a tap (along with the result).&
Right operand is a patron.
($$&) :: (Monoid r, Monad m) => Distiller p q m r s -> Patron r s m a -> Patron p q m (Distiller p q m r s, a) infixr 7 Source #
Attach a distiller to a patron.
Mnemonic:
$
Left operand is a distiller.$
Returns the used distiller.&
Right operand is a patron.
Stock distillers
traversing :: Monad m => (a -> m b) -> Distiller r a m r b Source #
scanningMaybe :: (Monoid r, Functor m) => (b -> a -> b) -> b -> Distiller r (Maybe a) m r (Maybe b) Source #
throughMaybe :: (Monoid r, Monad m) => Distiller p q m r s -> Distiller p (Maybe q) m r (Maybe s) Source #