drinkery-0.4: Boozy streaming library

Safe HaskellSafe
LanguageHaskell2010

Data.Drinkery.Class

Synopsis

Documentation

newtype Sink t m a Source #

A Sink is a stream consumer monad.

Constructors

Sink 

Fields

  • unSink :: forall r. t m -> (a -> t m -> m r) -> m r
     
Instances
MonadWriter s m => MonadWriter s (Sink t m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

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

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

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

MonadState s m => MonadState s (Sink t m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

get :: Sink t m s #

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

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

MonadReader r m => MonadReader r (Sink t m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

ask :: Sink t m r #

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

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

Monad m => MonadSink t (Sink t m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

MonadTrans (Sink t) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

Monad (Sink s m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

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

return :: a -> Sink s m a #

fail :: String -> Sink s m a #

Functor (Sink s m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

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

Applicative (Sink s m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

pure :: a -> Sink s m a #

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

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

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

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

MonadIO m => MonadIO (Sink t m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

mapSink :: (forall x. m x -> m x) -> Sink t m a -> Sink t m a Source #

runSink :: Applicative m => Sink t m a -> t m -> m (a, t m) Source #

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

Monads that drink

Minimal complete definition

receiving

Methods

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

Instances
MonadSink t m => MonadSink t (MaybeT m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

(Monoid x, MonadSink t m) => MonadSink t (WriterT x m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

(Monoid x, MonadSink t m) => MonadSink t (WriterT x m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

MonadSink t m => MonadSink t (StateT x m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

MonadSink t m => MonadSink t (StateT x m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

Monad m => MonadSink t (Sink t m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

MonadSink t m => MonadSink t (ListT p m) Source # 
Instance details

Defined in Data.Drinkery.Tap

Methods

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

MonadSink t m => MonadSink t (ContT x m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

MonadSink t m => MonadSink t (ReaderT x m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

MonadSink t m => MonadSink t (Producer p q m) Source # 
Instance details

Defined in Data.Drinkery.Tap

Methods

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

(Monoid y, MonadSink t m) => MonadSink t (RWST x y z m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

(Monoid y, MonadSink t m) => MonadSink t (RWST x y z m) Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

receiving :: (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
CloseRequest () Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

closeRequest :: () Source #

CloseRequest a => CloseRequest [a] Source # 
Instance details

Defined in Data.Drinkery.Class

Methods

closeRequest :: [a] Source #

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 # 
Instance details

Defined in Data.Drinkery.Tap

Methods

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