śĪKĻB‰±      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°Safe29:;<=DLORTA  folds a ^ down to its result value. It is simply a convenient type synonym for functions mapping a  to some result type.A Ø is a "Source homomorphism", or simple a mapping between sources. There is no need for it to be a type synonym, except to save repetition across type signatures.,A Source is a short-circuiting monadic fold. forms a Monad that behaves as ListT; for example: Mdo x <- yieldMany [1..3] line <- sourceFile "foo.txt" return (x, line) ~This yields the cross-product of [3] and the lines in the files, but only reading chunks from the file as needed by the sink.8To skip to the next value in a Source, use the function  or ±; to close the source, use . For example: xdo x <- yieldMany [1..10] if x == 2 || x == 9 then return x else if x < 5 then skip else close This outputs the list [2].A key difference from the conduit3 library is that monadic chaining of sources with ² follows ListTd, and not concatenation as in conduit. To achieve conduit-style behavior, use the Monoid instance:/sinkList $ yieldMany [1..3] <> yieldMany [4..6] [1,2,3,4,5,6]gPromote any sink to a source. This can be used as if it were a source transformer (aka, a conduit):9sinkList $ returnC $ sumC $ mapC (+1) $ yieldMany [1..10][65] Note that  is a synonym for . ’Most of the time conduits pass the fold variable through unmolested, but sometimes you need to ignore that variable and use your own within a stage of the pipeline. This is done by wrapping the fold variable in a tuple and then unwrapping it when the conduit is done.   makes this transparent.%  !"#$ %$#"!  #  !"#$Safe:OT& Compose a  and a  into a new k. Note that this is just flipped function application, so ($) can be used to achieve the same thing.' Compose a  and a  into a new `. Note that this is just function composition, so (.) can be used to achieve the same thing.( Compose two *. This is also just function composition.) Compose a  and a ‚ and compute the result. Note that this is just flipped function application, so ($) can be used to achieve the same thing.*!Sequence a collection of sources.?sinkList $ sequenceSources [yieldOne 1, yieldOne 2, yieldOne 3] [[1,2,3]]&'()*&'()*&'()*&'()*&1'2(2)0None9:;<=DLORT‚ēThis function reads one more element than it yields, which would be a problem if Sinks were monadic, as they are in conduit or pipes. There is no such concept as "resuming where the last conduit left off" in this library.Š.Collect elements into a vector until the size maxSize2 is reached, then yield that vector downstream.ØKeep taking from an MVar (Maybe a) until it yields ³.©Keep taking from an TMVar (Maybe a) until it yields ³.«EA Source for exhausting a TChan, but blocks if it is initially empty.ˆ+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW“XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗµ«¬­®Æ°š &'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°š +,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤¦„§Ø©Ŗ«¬­®Æ°&'()*ˆ+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW“XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗµ«¬­®Æ°¶      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¶·¹¶·ŗ»¼½+simple-conduit-0.6.0-Fn37ZO4NULbIjj5OpN4q0VConduit.Simple.CoreConduit.Simple.CompatConduit.SimpleControl.Monad.Trans.ClassliftSinkConduitSource getSourcereturnCprodcloseskip runSource lowerSourcesourceconduit conduitWithunwraprewrapsink awaitForever$fFoldableSource$fMonadMaskSource$fMonadCatchSource$fMonadThrowSource$fMonadErroreSource$fMonadWriterwSource$fMonadStatesSource$fMonadReaderrSource$fMonadFreefSource$fMonadTransSource$fMonadIOSource$fMMonadSource$fMFunctorSource $fMonadSource$fApplicativeSource$fMonadPlusSource$fAlternativeSource$fMonoidSource$fSemigroupSource$fFunctorSource$==$=$=$$sequenceSources yieldMany sourceListunfoldC enumFromToCiterateCrepeatC replicateC sourceLazyrepeatMC repeatWhileMC replicateMC sourceHandle sourceFilesourceIOHandlestdinC initRepeat initReplicate sourceRandom sourceRandomNsourceRandomGensourceRandomNGensourceDirectorysourceDirectoryDeepdropCdropCE dropWhileC dropWhileCEfoldCfoldCEfoldlCfoldlCEfoldMapC foldMapCEallCallCEanyCanyCEandCandCEorCorCEelemCelemCEnotElemC notElemCEsinkLazysinkList sinkVector sinkBuildersinkLazyBuildersinkNull awaitNonNullheadCElastClastCElengthClengthCE lengthIfC lengthIfCEmaximumC maximumCEminimumC minimumCEsumCsumCEproductC productCEfindCmapM_CmapM_CEfoldMCfoldMCE foldMapMC foldMapMCEsinkFile sinkHandle sinkIOHandleprintCstdoutCstderrCmapCmapCEomapCE concatMapC concatMapCEtakeCtakeCE takeWhileC takeWhileCE takeExactlyC takeExactlyCEconcatCfilterCfilterCE mapWhileC conduitVectorscanlCconcatMapAccumC intersperseC encodeBase64C decodeBase64CencodeBase64URLCdecodeBase64URLC encodeBase16C decodeBase16CmapMCmapMCEomapMCE concatMapMCfilterMC filterMCEiterMCscanlMCconcatMapAccumMC encodeUtf8C decodeUtf8ClineC lineAsciiCunlinesC unlinesAsciiClinesUnboundedC_linesUnboundedClinesUnboundedAsciiClinesC linesAsciiCsourceMaybeMVarsourceMaybeTMVarasyncC sourceTChan sourceTQueue sourceTBQueueuntilMCwhileMCzipSinksbaseGHC.Basemempty>>Nothing produceList sourceSTM