úÎóòíPp      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno  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 () instead of Void since there is ) no way to statically guarantee that the  NeedInput constructor will not be  used. A Source< is not used to produce a final result, and thus the result  parameter is set to () as well.  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 F record is an early cleanup function. Technically, this second record 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. ERequest more input from upstream. The first record 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  records: the next Pipe/ to be used, an early-closed function, and the  output value. 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 '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  pqrstuv     pqrstuv 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   SinkNoData. constructor. 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 'wx !"#$%&'  "!#$%&'wx 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 +A 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 . Construct a 7 with some stateful functions. This function addresses $ threading the state value for you.  Since 0.3.0 / Construct a 3. Note that your push and close functions need not ! explicitly perform any cleanup.  Since 0.3.0 ()*+,-.initial state push AClose. Note that the state is not returned, as it is not needed. / resource and/or state allocation  resource and/or state cleanup push close ()*+,-./(*)+-,./  Safe-Infered0%The return value when pulling in the sourceIO function. Either indicates " no more data, or the next value.  Since 0.3.0 3%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 6 Construct a  7 with some stateful functions. This function addresses $ threading the state value for you.  Since 0.3.0 7 Construct a  # based on some IO actions for alloc/ release.  Since 0.3.0 8A combination of 7 and 6.  Since 0.3.0 0123456Initial state Pull function 7 resource and/or state allocation  resource and/or state cleanup >Pull function. Note that this should not perform any cleanup. 8 resource and/or state allocation  resource and/or state cleanup GPull function. Note that this need not explicitly perform any cleanup. 012345678021354678 Noneyz{yz{yz{ Safe-Infered92Provide 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 <KThe 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 =.  Since 0.4.0 =4The 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 >HLeft 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 ?ERight 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 @Fusion 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 9:;<=>?@|<  !"#$%&'()*+,-./0123456789:;<=>?@<  <=>?@683547021.+-,/(*)#$ "!%&'9;:9;:<=>?@| Safe-InferedAA strict left fold.  Since 0.3.0 BA monadic strict left fold.  Since 0.3.0 C.Apply the action to all values in the stream.  Since 0.3.0 DConvert a list into a source.  Since 0.3.0 EBIgnore 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 FFTake 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 Q. . This function is semantically equivalent to:   take i = isolate i =$ consume  Since 0.3.0 G3Take a single value from the stream, if available.  Since 0.3.0 HKLook at the next value in the stream, if available. This function will not ! change the state of the stream.  Since 0.3.0 I2Apply a transformation to all values in a stream.  Since 0.3.0 J: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 C.  Since 0.3.0 KKApply a transformation to all values in a stream, concatenating the output  values.  Since 0.3.0 LHApply a monadic transformation to all values in a stream, concatenating  the output values.  Since 0.3.0 MK with an accumulator.  Since 0.3.0 NL with an accumulator.  Since 0.3.0 OHConsume 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 P2Grouping input according to an equality function.  Since 0.3.0 QEEnsure 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 S, e.g.:   src $$ do  x <- isolate count =$ do  x <- someSink  sinkNull  return x  someOtherSink  ...  Since 0.3.0 R:Keep only values in the stream passing a given predicate.  Since 0.3.0 SGIgnore the remainder of values in the source. Particularly useful when  combined with Q.  Since 0.3.0 THA source that returns nothing. Note that this is just a type-restricted  synonym for }.  Since 0.3.0 UECombines two sources. The new source will stop producing once either  source has been exhausted.  Since 0.3.0 ABCDEFGHIJKLMNOPQRSTUABCDEFGHIJKLMNOPQRSTUDTAFEGUHOSBCIKMPQRJLNABCDEFGHIJKLMNOPQRSTU Safe-InferedV 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 W.Stream the contents of a file as binary data.  Since 0.3.0 XStream 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 YAn alternative to X.  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 Z&Stream all incoming data to the given ~. Note that this function  will not automatically close the Handle when processing completes.  Since 0.3.0 [An alternative to Z.  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 \FStream 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 ],Stream all incoming data to the given file.  Since 0.3.0 ^GStream 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 _JEnsure 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 `4Return the next byte from the stream, if available.  Since 0.3.0 a-Return all bytes while the predicate returns True.  Since 0.3.0 b-Ignore all bytes while the predicate returns True.  Since 0.3.0 c.Take the given number of bytes, if available.  Since 0.3.0 dGSplit the input bytes into lines. In other words, split on the LF byte % (10), and strip it from the output.  Since 0.3.0 VWXYZ[\Offset Maximum count ]^_`abcdVWXYZ[\]^_`abcdWXY\]Z[^_V`abcdVWXYZ[\]^_`abcd Safe-Infered eA specific character encoding.  Since 0.3.0 fCConvert 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 gCConvert 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 h Since 0.3.0 i Since 0.3.0 j Since 0.3.0 k Since 0.3.0 l Since 0.3.0 m Since 0.3.0 n Since 0.3.0 efghijklmn€ efghijklmn efghijklmn efghijklmn€ Safe-Inferedo 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 oooo‚       !"#$%&'()*+,-./0123456789:;< = > ? @ A B C D EFFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij]SklRmnopqrstuvwxyz{|}~€ ‚ ƒ „…†‡ˆ†‰Š‹Œ Ž conduit-0.4.0 Data.ConduitData.Conduit.InternalData.Conduit.ListData.Conduit.BinaryData.Conduit.TextData.Conduit.LazyData.Conduit.Util.ConduitData.Conduit.Util.SinkData.Conduit.Util.SourceSystem.PosixFileresourcet-0.3.2Control.Monad.Trans.Resource runResourceT ResourceT MonadResource monadThrow MonadThrow unsafeLiftIO MonadUnsafeIOConduitSinkSourcePipePipeMDone NeedInput HaveOutput pipeClosepipe pipeResumerunPipeyieldawaithasInput sinkToPipe transPipe SequencedSinkSequencedSinkResponse StartConduitStopEmitConduitIOResult IOProducing IOFinishedConduitStateResultStateProducing StateFinishedhaveMore conduitState conduitIO sequenceSinksequence SinkIOResult IOProcessingIODoneSinkStateResultStateProcessing StateDone sinkStatesinkIOSourceIOResultIOClosedIOOpenSourceStateResult StateClosed StateOpen sourceStatesourceIO sourceStateIOFlushChunk$$$$+$==$=$=foldfoldMmapM_ sourceListdroptakeheadpeekmapmapM concatMap concatMapMconcatMapAccumconcatMapAccumMconsumegroupByisolatefiltersinkNull sourceNullzipopenFile sourceFile sourceHandlesourceIOHandle sinkHandle sinkIOHandlesourceFileRangesinkFile conduitFile takeWhile dropWhilelinesCodecencodedecodeutf8utf16_leutf16_beutf32_leutf32_beascii iso8859_1 lazyConsume $fMonoidPipe $fMonadIOPipe$fMonadTransPipe$fMonadBasebasePipe $fMonadPipe$fApplicativePipe $fFunctorPipe$fFunctorConduitIOResult$fFunctorConduitStateResultcloseopenReadread$fFunctorFlushbase Data.MonoidmemptyGHC.IO.Handle.TypesHandle$fExceptionTextException $fShowCodec monadActive