drinkery-0.1: Boozy streaming library

Safe HaskellSafe
LanguageHaskell2010

Data.Drinkery.Patron

Synopsis

Documentation

newtype Patron s m a Source #

Patron s is a simple consumer of s. Unlike Drinker, it can be partially run.

serving distributes each input to a list of Patrons until all the patrons terminate. (<|>) returns the first result.

Constructors

Patron 

Fields

Instances

MonadTrans (Patron s) Source # 

Methods

lift :: Monad m => m a -> Patron s m a #

Monad m => Monad (Patron s m) Source # 

Methods

(>>=) :: Patron s m a -> (a -> Patron s m b) -> Patron s m b #

(>>) :: Patron s m a -> Patron s m b -> Patron s m b #

return :: a -> Patron s m a #

fail :: String -> Patron s m a #

Functor m => Functor (Patron s m) Source # 

Methods

fmap :: (a -> b) -> Patron s m a -> Patron s m b #

(<$) :: a -> Patron s m b -> Patron s m a #

Monad m => Applicative (Patron s m) Source # 

Methods

pure :: a -> Patron s m a #

(<*>) :: Patron s m (a -> b) -> Patron s m a -> Patron s m b #

liftA2 :: (a -> b -> c) -> Patron s m a -> Patron s m b -> Patron s m c #

(*>) :: Patron s m a -> Patron s m b -> Patron s m b #

(<*) :: Patron s m a -> Patron s m b -> Patron s m a #

Monad m => Alternative (Patron s m) Source # 

Methods

empty :: Patron s m a #

(<|>) :: Patron s m a -> Patron s m a -> Patron s m a #

some :: Patron s m a -> Patron s m [a] #

many :: Patron s m a -> Patron s m [a] #

Monad m => MonadPlus (Patron s m) Source # 

Methods

mzero :: Patron s m a #

mplus :: Patron s m a -> Patron s m a -> Patron s m a #

await :: Monad m => Patron s m s Source #

serving_ :: Monad m => [Patron s m a] -> Patron s m () Source #

iterPatron :: Monad m => m s -> Patron s m a -> m a Source #

iterPatronT :: (Monad m, MonadTrans t, Monad (t m)) => t m s -> Patron s m a -> t m a Source #

iterPatronT drink :: Patron s m a -> Drinker s m a