drinkery-0.2: Boozy streaming library

Safe HaskellSafe
LanguageHaskell2010

Data.Drinkery.Class

Synopsis

Documentation

newtype Drinker t m a Source #

A Drinker is a stream consumer monad.

Constructors

Drinker 

Fields

Instances

MonadWriter s m => MonadWriter s (Drinker t m) Source # 

Methods

writer :: (a, s) -> Drinker t m a #

tell :: s -> Drinker t m () #

listen :: Drinker t m a -> Drinker t m (a, s) #

pass :: Drinker t m (a, s -> s) -> Drinker t m a #

MonadState s m => MonadState s (Drinker t m) Source # 

Methods

get :: Drinker t m s #

put :: s -> Drinker t m () #

state :: (s -> (a, s)) -> Drinker t m a #

MonadReader r m => MonadReader r (Drinker t m) Source # 

Methods

ask :: Drinker t m r #

local :: (r -> r) -> Drinker t m a -> Drinker t m a #

reader :: (r -> a) -> Drinker t m a #

Monad m => MonadDrunk t (Drinker t m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> Drinker t m a Source #

MonadTrans (Drinker t) Source # 

Methods

lift :: Monad m => m a -> Drinker t m a #

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

Methods

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

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

return :: a -> Drinker s m a #

fail :: String -> Drinker s m a #

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

Methods

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

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

(Functor m, Monad m) => Applicative (Drinker s m) Source # 

Methods

pure :: a -> Drinker s m a #

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

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

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

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

MonadIO m => MonadIO (Drinker t m) Source # 

Methods

liftIO :: IO a -> Drinker t m a #

mapDrinker :: (forall x. m x -> m x) -> Drinker t m a -> Drinker t m a Source #

class Monad m => MonadDrunk t m | m -> t where Source #

Monads that drink

Minimal complete definition

drinking

Methods

drinking :: (forall n. Monad n => t n -> n (a, t n)) -> m a Source #

Instances

MonadDrunk t m => MonadDrunk t (MaybeT m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> MaybeT m a Source #

(Monoid x, MonadDrunk t m) => MonadDrunk t (WriterT x m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> WriterT x m a Source #

(Monoid x, MonadDrunk t m) => MonadDrunk t (WriterT x m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> WriterT x m a Source #

MonadDrunk t m => MonadDrunk t (StateT x m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> StateT x m a Source #

MonadDrunk t m => MonadDrunk t (StateT x m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> StateT x m a Source #

Monad m => MonadDrunk t (Drinker t m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> Drinker t m a Source #

MonadDrunk t m => MonadDrunk t (Sommelier p m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> Sommelier p m a Source #

MonadDrunk t m => MonadDrunk t (ContT * x m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> ContT * x m a Source #

MonadDrunk t m => MonadDrunk t (ReaderT * x m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> ReaderT * x m a Source #

MonadDrunk t m => MonadDrunk t (Barman p q m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> Barman p q m a Source #

(Monoid y, MonadDrunk t m) => MonadDrunk t (RWST x y z m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> RWST x y z m a Source #

(Monoid y, MonadDrunk t m) => MonadDrunk t (RWST x y z m) Source # 

Methods

drinking :: (forall (n :: * -> *). Monad n => t n -> n (a, t n)) -> RWST x y z m a Source #

class CloseRequest a where Source #

Minimal complete definition

closeRequest

Methods

closeRequest :: a Source #

A value representing a close request

Instances

class Closable t where Source #

Closable tap

Minimal complete definition

close

Methods

close :: Monad m => t m -> m () Source #

Instances

CloseRequest r => Closable (Tap r s) Source # 

Methods

close :: Monad m => Tap r s m -> m () Source #