1{-# LANGUAGE RankNTypes #-} 2{-# LANGUAGE DeriveFunctor #-} 3{-# LANGUAGE FlexibleContexts #-} 4-- | If this is your first time with conduit, you should probably start with 5-- the tutorial: 6-- <https://github.com/snoyberg/conduit#readme>. 7module Data.Conduit 8 ( -- * Core interface 9 -- ** Types 10 ConduitT 11 -- *** Deprecated 12 , Source 13 , Conduit 14 , Sink 15 , ConduitM 16 -- ** Connect/fuse operators 17 , (.|) 18 , connect 19 , fuse 20 -- *** Deprecated 21 , ($$) 22 , ($=) 23 , (=$) 24 , (=$=) 25 26 -- *** Fuse with upstream results 27 , fuseBoth 28 , fuseBothMaybe 29 , fuseUpstream 30 31 -- ** Primitives 32 , await 33 , yield 34 , yieldM 35 , leftover 36 , runConduit 37 , runConduitPure 38 , runConduitRes 39 40 -- ** Finalization 41 , bracketP 42 43 -- ** Exception handling 44 , catchC 45 , handleC 46 , tryC 47 48 -- * Generalized conduit types 49 , Producer 50 , Consumer 51 , toProducer 52 , toConsumer 53 54 -- * Utility functions 55 , awaitForever 56 , transPipe 57 , mapOutput 58 , mapOutputMaybe 59 , mapInput 60 , mapInputM 61 , mergeSource 62 , passthroughSink 63 , sourceToList 64 65 -- * Connect-and-resume 66 , SealedConduitT 67 , sealConduitT 68 , unsealConduitT 69 , ($$+) 70 , ($$++) 71 , ($$+-) 72 , ($=+) 73 74 -- ** For @Conduit@s 75 , (=$$+) 76 , (=$$++) 77 , (=$$+-) 78 79 -- * Fusion with leftovers 80 , fuseLeftovers 81 , fuseReturnLeftovers 82 83 -- * Flushing 84 , Flush (..) 85 86 -- * Newtype wrappers 87 -- ** ZipSource 88 , ZipSource (..) 89 , sequenceSources 90 91 -- ** ZipSink 92 , ZipSink (..) 93 , sequenceSinks 94 95 -- ** ZipConduit 96 , ZipConduit (..) 97 , sequenceConduits 98 99 -- * Convenience reexports 100 , Void -- FIXME consider instead relaxing type of runConduit 101 ) where 102 103import Data.Conduit.Internal.Conduit 104import Data.Void (Void) 105import Data.Functor.Identity (Identity, runIdentity) 106import Control.Monad.Trans.Resource (ResourceT, runResourceT) 107import Control.Monad.IO.Unlift (MonadUnliftIO) 108