drinkery-0.4: Boozy streaming library

Safe HaskellSafe
LanguageHaskell2010

Data.Drinkery.Class

Synopsis

Documentation

newtype Sink t m a #

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

Defined in Data.Drinkery.Class

Methods

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

MonadTrans (Sink t) # 
Instance details

Defined in Data.Drinkery.Class

Methods

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

Monad (Sink s m) # 
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) # 
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) # 
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) # 
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 #

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

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

Monads that drink

Methods

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

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

Defined in Data.Drinkery.Class

Methods

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

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

Defined in Data.Drinkery.Class

Methods

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

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

Defined in Data.Drinkery.Class

Methods

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

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

Defined in Data.Drinkery.Class

Methods

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

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

Defined in Data.Drinkery.Class

Methods

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

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

Defined in Data.Drinkery.Class

Methods

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

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

Defined in Data.Drinkery.Class

Methods

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

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

Defined in Data.Drinkery.Tap

Methods

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

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

Defined in Data.Drinkery.Class

Methods

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

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

Defined in Data.Drinkery.Tap

Methods

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

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

Defined in Data.Drinkery.Class

Methods

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

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

Defined in Data.Drinkery.Class

Methods

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

class CloseRequest a where #

Methods

closeRequest :: a #

A value representing a close request

Instances
CloseRequest () # 
Instance details

Defined in Data.Drinkery.Class

Methods

closeRequest :: () #

CloseRequest a => CloseRequest [a] # 
Instance details

Defined in Data.Drinkery.Class

Methods

closeRequest :: [a] #

class Closable t where #

Closable tap

Methods

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

Instances
CloseRequest r => Closable (Tap r s) # 
Instance details

Defined in Data.Drinkery.Tap

Methods

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