h$)F(n'      !"#$%&2018 Luis Pedro CoelhoMITluis@luispedro.orgNone ?conduit-algorithmswrite a Storable vector&This uses the same format as in-memorySee conduit-algorithmsread a Storable vector5This expects the same format as the in-memory vector.This will break up the incoming data into vectors of the given size. The last vector may be smaller if there is not enough data. Any unconsumed Bytes will be leftover for the next conduit in the pipeline.See 2013-2021 Luis Pedro CoelhoMITluis@luispedro.orgNone conduit-algorithms0Act on the next input (do nothing if no input).  awaitJust f is equivalent to  do next <- C.await case next of Just val -> f val Nothing -> return () 'This is a simple utility adapted from http://neilmitchell.blogspot.de/2015/07/thoughts-on-conduits.htmlconduit-algorithms/Conduit analogue to Python's enumerate functionconduit-algorithms!This function is deprecated; use %groupC yields the input as groups of n. elements. If the input is not a multiple of n%, the last element will be incompleteExample: 8 CC.yieldMany [0..10] .| groupC 3 .| CC.consumeList  results in &[ [0,1,2], [3,4,5], [6,7,8], [9, 10] ]conduit-algorithms9dispatchC dispatches indexed input to the respective sinkExample:  let input = [(0, "one") ,(1, "two") ,(0, "three") ] CC.yieldMany input .| dispatches [sink1, sink2] Then sink1' will receive "one" and "three", while sink2 will receive "two"=Out of bounds indices are clipped to the 0..n-1 range (where n is 'length sinks')conduit-algorithms Version of  that returns ()2013-2022 Luis Pedro CoelhoMITluis@luispedro.orgNone ?conduit-algorithms This is like , except that each element is processed in a separate thread (up to  maxThreads can be queued up at any one time). Results are evaluated to normal form (not weak-head normal form!, i.e., the structure is deeply evaluated) to ensure that the computation is fully evaluated in the worker thread.Note that there is some overhead in threading. It is often a good idea to build larger chunks of input before passing it to ' to amortize the costs. That is, when f" is not a lot of work, instead of  asyncMapC f, it is sometimes better to do = CC.conduitVector 4096 .| asyncMapC (V.map f) .| CC.concat where CC refers to   See conduit-algorithms A version of ( which can reorder results in the streamIf the order of the results is not important, this function can lead to a better use of resources if some of the chunks take longer to complete.See  conduit-algorithms with error handling. The inner function can now return an error (as a '$). When the first error is seen, it ( s in the main monad. Note that f may be evaluated for arguments beyond the first error (as some threads may be running in the background and already processing elements after the first error).See  conduit-algorithmsA simple sink which performs gzip compression in a separate thread and writes the results to h. See also  conduit-algorithmsA simple sink which performs gzip compression in a separate thread and writes the results to h with a given compression level. conduit-algorithmsCompresses the output and writes to the given file with compression being performed in a separate thread. See also  conduit-algorithmsA source which produces the ungzipped content from the the given handle. Note that this "reads ahead" so if you do not use all the input, the Handle will probably be left at an undefined position in the file.%Note: unlike the ungzip conduit from   , this function will read *all* the compressed files in the stream (not just the first). See also conduit-algorithmsOpen and read a gzip file with the uncompression being performed in a separate thread. See also  conduit-algorithmsA simple sink which performs bzip2 compression in a separate thread and writes the results to h. See also conduit-algorithmsCompresses the output and writes to the given file with compression being performed in a separate thread. See also conduit-algorithmsA source which produces the bzipped2 content from the the given handle. Note that this "reads ahead" so if you do not use all the input, the Handle will probably be left at an undefined position in the file. See also conduit-algorithmsOpen and read a bzip2 file with the uncompression being performed in a separate thread. See also conduit-algorithmsA simple sink which performs lzma/xz compression in a separate thread and writes the results to h. See also conduit-algorithmsA simple sink which performs lzma/xz compression in a separate thread and writes the results to h. See also  and conduit-algorithmsCompresses the output and writes to the given file with compression being performed in a separate thread. See also conduit-algorithmsA source which produces the unxzipped content from the the given handle. Note that this "reads ahead" so if you do not use all the input, the Handle will probably be left at an undefined position in the file. See also conduit-algorithmsOpen and read a lzma/xz file with the uncompression being performed in a separate thread. See also conduit-algorithms.Decompress ZStd format using a separate thread See also conduit-algorithmsCompress in ZStd format using a separate thread and write to a file See also conduit-algorithms/Compress in Zstd format using a separate thread See also conduit-algorithmsCompress in ZStd format using a separate thread and write to a fileThis will use compression level 3 as this is the default in the ZStd C API See also conduit-algorithmsIf the filename indicates a supported compressed file (gzip, xz, and, on Unix, bzip2), then it reads it and uncompresses it.Usage  withPossiblyCompressedFile fname $ src -> runConduit (src .| mySink) Unlike , this ensures that the file is closed even if the conduit terminates early.=On Windows, attempting to read from a bzip2 file, results in ).conduit-algorithmsIf the filename indicates a supported compressed file (gzip, xz, and, on Unix, bzip2), then it provides an output sourceUsage  withPossiblyCompressedFileOutput fname $ out -> runConduit (mySrc .| out) This ensures that the file is closed even if the conduit terminates early.=On Windows, attempting to read from a bzip2 file, results in ).conduit-algorithmsIf the filename indicates a gzipped file (or, on Unix, also a bz2 file), then it reads it and uncompresses it.To ensure that the file is closed even if the downstream finishes early, consider using .=On Windows, attempting to read from a bzip2 file, results in ).conduit-algorithmsIf the filename indicates a gzipped file (or, on Unix, also a bz2 file), then it compresses and write with the algorithm matching the filenameConsider using  to ensure prompt file closing. b; key function) and yields it if it has not seen it before.Note that this conduit does not5 assume that the input is sorted. Instead it uses a    to store previously seen elements. Thus, memory usage is O(N) and time is O(N log N). If the input is sorted, you can use $#conduit-algorithmsUnique conduitSee " and $$conduit-algorithmsRemoves repeated elements  yieldMany [0, 0, 1, 1, 1, 2, 2, 0] .| removeRepeatsC .| consume is equivalent to  [0, 1, 2, 0]See # and "%conduit-algorithmsMerge a list of sorted sources to produce a single (sorted) source3This takes a list of sorted sources and produces a *- which outputs all elements in sorted order.See &&conduit-algorithms'Take two sorted sources and merge them.See %"#$%&"#$%&+ !"#$%&'()*+,-./0123456789:5;<=>?2conduit-algorithms-0.0.13.0-7k5fKkUnlLrLyNxSOMoU2o Data.Conduit.Algorithms.StorableData.Conduit.Algorithms.UtilsData.Conduit.Algorithms.Async(Data.Conduit.Algorithms.Async.ByteStringData.Conduit.AlgorithmsData.Conduit.ListchunksOfmap Data.Conduit CombinatorsZlibDataSetwriteStorableV readStorableV awaitJust enumerateCgroupC dispatchC dispatchC_ asyncMapCunorderedAsyncMapCasyncMapEitherC asyncGzipTo asyncGzipTo'asyncGzipToFile asyncGzipFromasyncGzipFromFile asyncBzip2ToasyncBzip2ToFileasyncBzip2FromasyncBzip2FromFile asyncXzTo asyncXzTo' asyncXzToFile asyncXzFromasyncXzFromFile asyncZstdFromasyncZstdFromFile asyncZstdToasyncZstdToFilewithPossiblyCompressedFile withPossiblyCompressedFileOutputconduitPossiblyCompressedFileconduitPossiblyCompressedToFileasyncMapLineGroupsCasyncFilterLinesC uniqueOnCuniqueCremoveRepeatsCmergeCmergeC2base Data.EitherLeft mtl-2.2.2Control.Monad.Error.Class throwErrorGHC.Errerror&conduit-1.3.4.2-1BrT0UWp1KV7IQNuKoLGzxData.Conduit.Internal.ConduitSource