foundation-0.0.15: Alternative prelude with batteries and no dependencies

Safe HaskellNone
LanguageHaskell2010

Foundation.Conduit

Synopsis

Documentation

data Conduit input output monad result #

A component of a conduit pipeline, which takes a stream of input, produces a stream of output, performs actions in the underlying monad, and produces a value of result when no more output data is available.

Instances

MonadTrans (Conduit i o) # 

Methods

lift :: Monad m => m a -> Conduit i o m a #

Monad (Conduit i o m) # 

Methods

(>>=) :: Conduit i o m a -> (a -> Conduit i o m b) -> Conduit i o m b #

(>>) :: Conduit i o m a -> Conduit i o m b -> Conduit i o m b #

return :: a -> Conduit i o m a #

fail :: String -> Conduit i o m a #

Functor (Conduit i o m) # 

Methods

fmap :: (a -> b) -> Conduit i o m a -> Conduit i o m b #

(<$) :: a -> Conduit i o m b -> Conduit i o m a #

Applicative (Conduit i o m) # 

Methods

pure :: a -> Conduit i o m a #

(<*>) :: Conduit i o m (a -> b) -> Conduit i o m a -> Conduit i o m b #

(*>) :: Conduit i o m a -> Conduit i o m b -> Conduit i o m b #

(<*) :: Conduit i o m a -> Conduit i o m b -> Conduit i o m a #

MonadIO m => MonadIO (Conduit i o m) # 

Methods

liftIO :: IO a -> Conduit i o m a #

MonadFailure m => MonadFailure (Conduit i o m) # 

Associated Types

type Failure (Conduit i o m :: * -> *) :: * #

Methods

mFail :: Failure (Conduit i o m) -> Conduit i o m () #

MonadCatch m => MonadCatch (Conduit i o m) # 

Methods

catch :: Exception e => Conduit i o m a -> (e -> Conduit i o m a) -> Conduit i o m a #

MonadThrow m => MonadThrow (Conduit i o m) # 

Methods

throw :: Exception e => e -> Conduit i o m a #

type Failure (Conduit i o m) # 
type Failure (Conduit i o m) = Failure m

data ResourceT m a #

Instances

MonadTrans ResourceT # 

Methods

lift :: Monad m => m a -> ResourceT m a #

Monad m => Monad (ResourceT m) # 

Methods

(>>=) :: ResourceT m a -> (a -> ResourceT m b) -> ResourceT m b #

(>>) :: ResourceT m a -> ResourceT m b -> ResourceT m b #

return :: a -> ResourceT m a #

fail :: String -> ResourceT m a #

Functor m => Functor (ResourceT m) # 

Methods

fmap :: (a -> b) -> ResourceT m a -> ResourceT m b #

(<$) :: a -> ResourceT m b -> ResourceT m a #

Applicative m => Applicative (ResourceT m) # 

Methods

pure :: a -> ResourceT m a #

(<*>) :: ResourceT m (a -> b) -> ResourceT m a -> ResourceT m b #

(*>) :: ResourceT m a -> ResourceT m b -> ResourceT m b #

(<*) :: ResourceT m a -> ResourceT m b -> ResourceT m a #

MonadIO m => MonadIO (ResourceT m) # 

Methods

liftIO :: IO a -> ResourceT m a #

MonadBracket m => MonadBracket (ResourceT m) # 

Methods

generalBracket :: ResourceT m a -> (a -> b -> ResourceT m ignored1) -> (a -> SomeException -> ResourceT m ignored2) -> (a -> ResourceT m b) -> ResourceT m b #

MonadCatch m => MonadCatch (ResourceT m) # 

Methods

catch :: Exception e => ResourceT m a -> (e -> ResourceT m a) -> ResourceT m a #

MonadThrow m => MonadThrow (ResourceT m) # 

Methods

throw :: Exception e => e -> ResourceT m a #

newtype ZipSink i m r #

Constructors

ZipSink 

Fields

Instances

Monad m => Functor (ZipSink i m) # 

Methods

fmap :: (a -> b) -> ZipSink i m a -> ZipSink i m b #

(<$) :: a -> ZipSink i m b -> ZipSink i m a #

Monad m => Applicative (ZipSink i m) # 

Methods

pure :: a -> ZipSink i m a #

(<*>) :: ZipSink i m (a -> b) -> ZipSink i m a -> ZipSink i m b #

(*>) :: ZipSink i m a -> ZipSink i m b -> ZipSink i m b #

(<*) :: ZipSink i m a -> ZipSink i m b -> ZipSink i m a #

await :: Conduit i o m (Maybe i) #

Await for a value from upstream.

awaitForever :: (input -> Conduit input output monad b) -> Conduit input output monad () #

yield :: Monad m => o -> Conduit i o m () #

Send a value downstream.

yields :: (Monad m, Foldable os, Element os ~ o) => os -> Conduit i o m () #

Send values downstream.

yieldOr #

Arguments

:: o 
-> m ()

finalizer

-> Conduit i o m () 

Same as yield, but additionally takes a finalizer to be run if the downstream component terminates.

leftover :: i -> Conduit i o m () #

Provide leftover input to be consumed by the next component in the current monadic binding.

runConduit :: Monad m => Conduit () () m r -> m r #

Run a conduit pipeline to completion.

runConduitPure :: Conduit () () Identity r -> r #

Run a pure conduit pipeline to completion.

runConduitRes :: (MonadBracket m, MonadIO m) => Conduit () () (ResourceT m) r -> m r #

Run a conduit pipeline in a ResourceT context for acquiring resources.

fuse :: Monad m => Conduit a b m () -> Conduit b c m r -> Conduit a c m r #

Send the output of the first Conduit component to the second Conduit component.

(.|) :: Monad m => Conduit a b m () -> Conduit b c m r -> Conduit a c m r infixr 2 #

Operator version of fuse.

sourceFile :: MonadResource m => FilePath -> Conduit i (UArray Word8) m () #

sinkFile :: MonadResource m => FilePath -> Conduit (UArray Word8) i m () #

sinkList :: Monad m => Conduit i o m [i] #

bracketConduit :: MonadResource m => IO a -> (a -> IO b) -> (a -> Conduit i o m r) -> Conduit i o m r #