tz      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy  Safe-InferedA PipeB which consumes a stream of input values and produces a stream of H output values. It does not produce a result value, and thus the result  parameter is set to ().  Since 0.4.0 A Pipe> which consumes a stream of input values and produces a final L result. It cannot produce any output values, and thus the output parameter  is set to Void/. In other words, it is impossible to create a  HaveOutput  constructor for a Sink.  Since 0.4.0 A PipeA which provides a stream of output values, without consuming any & input. The input parameter is set to Void to indicate that this Pipe  takes no input. A Source1 is not used to produce a final result, and thus  the result parameter is set to ().  Since 0.4.0 HThe underlying datatype for all the types in this package. In has four  type parameters:  i is the type of values for this Pipe's input stream.  o is the type of values for this Pipe's output stream.  m is the underlying monad.  r is the result type.  Note that o and r are inherently different. o is the type of the  stream of values this Pipe# will produce and send downstream. r is the  final output of this Pipe. Pipes can be composed via the % function. To do so, the output type M of the left pipe much match the input type of the left pipe, and the result $ type of the left pipe must be unit ()#. This is due to the fact that any N result produced by the left pipe must be discarded in favor of the result of  the right pipe.  Since 0.4.0 4Require running of a monadic action to get the next Pipe . Second D field is an early cleanup function. Technically, this second field E could be skipped, but doing so would require extra operations to be - performed in some cases. For example, for a Pipe pulling data from a H file, it may be forced to pull an extra, unneeded chunk before closing  the Handle. Processing with this Pipe, is complete. Provides an optional leftover  input value and and result. DRequest more input from upstream. The first field takes a new input  value and provides a new Pipe*. The second is for early termination. It  gives a new Pipe3 which takes no input from upstream. This allows a  PipeC to provide a final stream of output values after no more input is  available from upstream. EProvide new output to be sent downstream. This constructor has three  fields: the next Pipe/ to be used, an early-closed function, and the  output value. "A cleanup action to be performed. 6Previously, we just had a plain action. However, most Pipes simply have K empty cleanup actions, and storing a large set of them wastes memory. But M having strict fields and distinguishing between pure and impure actions, we I can keep memory usage constant, and only allocate memory for the actual  actions we have to track.  Since 0.4.1 2Perform any close actions available for the given Pipe.  Since 0.4.0 KCompose a left and right pipe together into a complete pipe. The left pipe N will be automatically closed when the right pipe finishes, and any leftovers ( from the right pipe will be discarded. !This is in fact a wrapper around  . This function closes the left  Pipe returns by  pipeResume and returns only the result.  Since 0.4.0 Same as ;, but retain both the new left pipe and the leftovers from M the right pipe. The two components are combined together into a single pipe ; and returned, together with the result of the right pipe. Note: we'Are biased towards checking the right side first to avoid pulling A extra data which is not needed. Doing so could cause data loss.  Since 0.4.0 4Run a complete pipeline until processing completes.  Since 0.4.0 ,Perform any necessary finalization actions.  Since 0.4.1 'Send a single output value downstream.  Since 0.4.0 DWait for a single input value from upstream, and remove it from the  stream. Returns Nothing if no more data is available.  Since 0.4.0 ICheck if input is available from upstream. Will not remove the data from  the stream.  Since 0.4.0 A Sink has a Void/ type parameter for the output, which makes it  difficult to compose with Sources and Conduits. This function replaces C that parameter with a free variable. This function is essentially id; it 5 only modifies the types, not the actions performed.  Since 0.4.0 Transform the monad that a Pipe lives in.  Since 0.4.0 /Apply a function to all the output values of a  . This mimics the behavior of z for a   and  in pre-0.4  days.  Since 0.4.1 'Add some code to be run when the given Pipe cleans up.  Since 0.4.1 % True if Pipe ran to completion, False for early termination. {|}~     {|}~ Safe-Infered Helper type for constructing a Conduit based on Sinks. This allows you J to write higher-level code that takes advantage of existing conduits and  sinks, and leverages a sink's monadic interface.  Since 0.3.0 Return value from a .  Since 0.3.0 Pass control to a new conduit. !End the conduit. "+Set a new state, and emit some new output. #A helper type for  conduitIO,, indicating the result of being pushed to. A It can either indicate that processing is done, or to continue.  Since 0.3.0 &A helper type for  conduitState(, indicating the result of being pushed N to. It can either indicate that processing is done, or to continue with the  updated state.  Since 0.3.0 )8A helper function for returning a list of values from a Conduit.  Since 0.3.0 * Construct a 7 with some stateful functions. This function addresses $ threading the state value for you.  Since 0.3.0 + Construct a .  Since 0.3.0 , Convert a  into a .  Since 0.3.0 -Specialised version of , ENote that this function will return an infinite stream if provided a  Sink> which does not consume data. In other words, you probably don' t want to do  sequence . return.  Since 0.3.0  !"#$%&'() The next Conduit. to return after the list has been exhausted. &A close action for early termination. $The values to send down the stream. *initial state Push function. QClose function. The state need not be returned, since it will not be used again. + resource and/or state allocation  resource and/or state cleanup GPush function. Note that this need not explicitly perform any cleanup. HClose function. Note that this need not explicitly perform any cleanup. ,initial state - !"#$%&'()*+,- "! #%$&(')*+,- Safe-Infered.A helper type for sinkIO/, indicating the result of being pushed to. It > can either indicate that processing is done, or to continue.  Since 0.3.0 1A helper type for  sinkState,, indicating the result of being pushed to. I It can either indicate that processing is done, or to continue with the  updated state.  Since 0.3.0 4 Construct a 7 with some stateful functions. This function addresses $ threading the state value for you.  Since 0.3.0 5 Construct a 3. Note that your push and close functions need not ! explicitly perform any cleanup.  Since 0.3.0 ./01234initial state push AClose. Note that the state is not returned, as it is not needed. 5 resource and/or state allocation  resource and/or state cleanup push close ./012345.0/13245  Safe-Infered6%The return value when pulling in the sourceIO function. Either indicates " no more data, or the next value.  Since 0.3.0 9%The return value when pulling in the  sourceState function. Either A indicates no more data, or the next value and an updated state.  Since 0.3.0 < Construct a  7 with some stateful functions. This function addresses $ threading the state value for you.  Since 0.3.0 = Construct a  # based on some IO actions for alloc/ release.  Since 0.3.0 >A combination of = and <.  Since 0.3.0 6789:;<Initial state Pull function = resource and/or state allocation  resource and/or state cleanup >Pull function. Note that this should not perform any cleanup. > resource and/or state allocation  resource and/or state cleanup GPull function. Note that this need not explicitly perform any cleanup. 6789:;<=>6879;:<=> None Safe-Infered?2Provide for a stream of data that can be flushed.  A number of Conduit5s (e.g., zlib compression) need the ability to flush N the stream at some point. This provides a single wrapper datatype to be used  in all such circumstances.  Since 0.3.0 BKThe connect operator, which pulls data from a source and pushes to a sink. 0 There are two ways this process can terminate:   If the Sink is a Done constructor, the Source is closed.  If the Source is a Done constructor, the Sink is closed. In other words, both the Source and Sink will always be closed. If you  would like to keep the Source- open to be used for another operations, use " the connect-and-resume operators C.  Since 0.4.0 C4The connect-and-resume operator. Does not close the Source, but instead , returns it to be used again. This allows a Source to be used incrementally G in a large program, without forcing the entire program to live in the Sink  monad. Mnemonic: connect + do more.  Since 0.4.0 DHLeft fuse, combining a source and a conduit together into a new source.  Both the Source and Conduit' will be closed when the newly-created  Source is closed. Leftover data from the Conduit will be discarded.  Since 0.4.0 EERight fuse, combining a conduit and a sink together into a new sink.  Both the Conduit and Sink' will be closed when the newly-created Sink  is closed.  Leftover data returned from the Sink will be discarded.  Since 0.4.0 FFusion operator, combining two Pipes together into a new Pipe. Both Pipe(s will be closed when the newly-created Pipe is closed. &Leftover data returned from the right Pipe will be discarded. GNote: in previous versions, this operator would only fuse together two  ConduitDs (known as middle fusion). This operator is generalized to work on  all Pipe s, including Sources and Sinks.  Since 0.4.0 ?@ABCDEF=  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF=  BCDEF<>9;:=68741325.0/)*&('+#%$,-"! ?A@?A@BCDEF Safe-InferedG Open a file / safely by automatically registering a release  action. #While you are not required to call hClose on the resulting handle, you = should do so as early as possible to free scarce resources.  Since 0.3.0 H.Stream the contents of a file as binary data.  Since 0.3.0 IStream the contents of a  as binary data. Note that this  function will not automatically close the Handle when processing ) completes, since it did not acquire the Handle in the first place.  Since 0.3.0 JAn alternative to I.  Instead of taking a pre-opened  , it takes an action that opens  a 9 (in read mode), so that it can open it only when needed # and close it as soon as possible.  Since 0.3.0 K&Stream all incoming data to the given . Note that this function  will not automatically close the Handle when processing completes.  Since 0.3.0 LAn alternative to K.  Instead of taking a pre-opened  , it takes an action that opens  a : (in write mode), so that it can open it only when needed # and close it as soon as possible.  Since 0.3.0 MFStream the contents of a file as binary data, starting from a certain < offset and only consuming up to a certain number of bytes.  Since 0.3.0 N,Stream all incoming data to the given file.  Since 0.3.0 OGStream the contents of the input to a file, and also send it along the 2 pipeline. Similar in concept to the Unix command tee.  Since 0.3.0 PJEnsure that only up to the given number of bytes are consume by the inner  sink. Note that this does not, ensure that all of those bytes are in fact  consumed.  Since 0.3.0 Q4Return the next byte from the stream, if available.  Since 0.3.0 R-Return all bytes while the predicate returns True.  Since 0.3.0 S-Ignore all bytes while the predicate returns True.  Since 0.3.0 T.Take the given number of bytes, if available.  Since 0.3.0 UGSplit the input bytes into lines. In other words, split on the LF byte % (10), and strip it from the output.  Since 0.3.0 GHIJKLMOffset Maximum count NOPQRSTUGHIJKLMNOPQRSTUHIJMNKLOPGQRSTUGHIJKLMNOPQRSTU Safe-InferedV%Generate a source from a seed value.  Since 0.4.2 W8Enumerate from a value to a final value, inclusive, via . ,This is generally more efficient than using Prelude's  enumFromTo and  combining with  sourceList) since this avoids any intermediate data  structures.  Since 0.4.2 XA strict left fold.  Since 0.3.0 YA monadic strict left fold.  Since 0.3.0 Z.Apply the action to all values in the stream.  Since 0.3.0 [Convert a list into a source.  Since 0.3.0 \BIgnore a certain number of values in the stream. This function is  semantically equivalent to:   drop i = take i >> return ()  However, drop9 is more efficient as it does not need to hold values in  memory.  Since 0.3.0 ]FTake some values from the stream and return as a list. If you want to ? instead create a conduit that pipes data to another sink, see h. . This function is semantically equivalent to:   take i = isolate i =$ consume  Since 0.3.0 ^3Take a single value from the stream, if available.  Since 0.3.0 _KLook at the next value in the stream, if available. This function will not ! change the state of the stream.  Since 0.3.0 `2Apply a transformation to all values in a stream.  Since 0.3.0 a:Apply a monadic transformation to all values in a stream. MIf you do not need the transformed values, and instead just want the monadic ) side-effects of running the action, see Z.  Since 0.3.0 bKApply a transformation to all values in a stream, concatenating the output  values.  Since 0.3.0 cHApply a monadic transformation to all values in a stream, concatenating  the output values.  Since 0.3.0 db with an accumulator.  Since 0.3.0 ec with an accumulator.  Since 0.3.0 fHConsume all values from the stream and return as a list. Note that this ; will pull all values into memory. For a lazy variant, see  Data.Conduit.Lazy.  Since 0.3.0 g2Grouping input according to an equality function.  Since 0.3.0 hEEnsure that the inner sink consumes no more than the given number of  values. Note this this does not, ensure that the sink consumes all of those 2 values. To get the latter behavior, combine with j, e.g.:   src $$ do  x <- isolate count =$ do  x <- someSink  sinkNull  return x  someOtherSink  ...  Since 0.3.0 i:Keep only values in the stream passing a given predicate.  Since 0.3.0 jGIgnore the remainder of values in the source. Particularly useful when  combined with h.  Since 0.3.0 kHA source that returns nothing. Note that this is just a type-restricted  synonym for .  Since 0.3.0 lECombines two sources. The new source will stop producing once either  source has been exhausted.  Since 0.3.0 mJCombines two sinks. The new sink will complete when both input sinks have  completed. HIf both sinks finish on the same chunk, and both report leftover input,  arbitrarily yield the left sink's leftover input.  Since 0.4.1 VWXYZ[\]^_`abcdefghijklmVWXYZ[\]^_`abcdefghijklm[kVWX]\^lm_fjYZ`bdghiaceVWXYZ[\]^_`abcdefghijklm Safe-Infered nA specific character encoding.  Since 0.3.0 oEmit each line separately  Since 0.4.1 pCConvert text into bytes, using the provided codec. If the codec is N not capable of representing an input character, an exception will be thrown.  Since 0.3.0 qCConvert bytes into text, using the provided codec. If the codec is N not capable of decoding an input byte sequence, an exception will be thrown.  Since 0.3.0 r Since 0.3.0 s Since 0.3.0 t Since 0.3.0 u Since 0.3.0 v Since 0.3.0 w Since 0.3.0 x Since 0.3.0 nopqrstuvwx nopqrstuvwx npqrstuvwxo nopqrstuvwx Safe-Inferedy Use lazy I/!O to consume all elements from a Source. This function relies on ( to determine if the underlying monadic  state has been closed.  Since 0.3.0 yyyy       !"#$%&'()*+,-./0123456789:;<=>?@AB C D E F G H I J KLLMNOPQRSTUVWXYZ[\]^_`abcdefgh`]ijklmnopq\rstuvwaxyz{|}~  conduit-0.4.2 Data.ConduitData.Conduit.InternalData.Conduit.BinaryData.Conduit.ListData.Conduit.TextData.Conduit.LazyData.Conduit.Util.ConduitData.Conduit.Util.SinkData.Conduit.Util.SourceSystem.PosixFileresourcet-0.3.2.1Control.Monad.Trans.Resource runResourceT ResourceT MonadResource monadThrow MonadThrow unsafeLiftIO MonadUnsafeIOConduitSinkSourcePipePipeMDone NeedInput HaveOutputFinalize FinalizeM FinalizePure pipeClosepipe pipeResumerunPipe runFinalizeyieldawaithasInput sinkToPipe transPipe mapOutput addCleanup SequencedSinkSequencedSinkResponse StartConduitStopEmitConduitIOResult IOProducing IOFinishedConduitStateResultStateProducing StateFinishedhaveMore conduitState conduitIO sequenceSinksequence SinkIOResult IOProcessingIODoneSinkStateResultStateProcessing StateDone sinkStatesinkIOSourceIOResultIOClosedIOOpenSourceStateResult StateClosed StateOpen sourceStatesourceIO sourceStateIOFlushChunk$$$$+$==$=$=openFile sourceFile sourceHandlesourceIOHandle sinkHandle sinkIOHandlesourceFileRangesinkFile conduitFileisolatehead takeWhile dropWhiletakelinesunfold enumFromTofoldfoldMmapM_ sourceListdroppeekmapmapM concatMap concatMapMconcatMapAccumconcatMapAccumMconsumegroupByfiltersinkNull sourceNullzipzipSinksCodecencodedecodeutf8utf16_leutf16_beutf32_leutf32_beascii iso8859_1 lazyConsumebaseGHC.Basefmap $fMonoidPipe $fMonadIOPipe$fMonadTransPipe$fMonadBasebasePipe $fMonadPipe$fApplicativePipe $fFunctorPipe$fMonadResourceFinalize$fMonadIOFinalize$fMonadThrowFinalize$fMonadTransFinalize$fMonadFinalize$fApplicativeFinalize$fFunctorFinalize$fFunctorConduitIOResult$fFunctorConduitStateResultcloseopenReadread$fFunctorFlushGHC.IO.Handle.TypesHandleGHC.Enumsucc Data.Monoidmempty$fExceptionTextException $fShowCodec monadActive