śĪDĀ9›Ÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžNoneŸ ”¢£¤„¦§Ø©Ŗ«¬­£Ŗ«¬­ Ÿ ”¢£¤„¦§Ø©Ŗ«¬­None(A Source4 which has been started, but has not yet completed. 1This type contains both the current state of the Source, and the finalizer  to be run to close it.  Since 0.5.0 JConsumes a stream of input values and produces a stream of output values, # without producing a final result.  Since 0.5.0 IA component which consumes a stream of input values and produces a final , result, regardless of the output stream. A Consumer is a generalization of  a Sink, and can be used as either a Sink or a Conduit.  Since 1.0.0 GConsumes a stream of input values and produces a final result, without  producing any output.  Since 0.5.0 HA component which produces a stream of output values, regardless of the  input stream. A Producer is a generalization of a Source , and can be  used as either a Source or a Conduit.  Since 1.0.0 CProvides a stream of output values, without consuming any input or  producing a final result.  Since 0.5.0 ECore datatype of the conduit package. This type represents a general 6 component which can consume a stream of input values i, produce a stream  of output values o, perform actions in the m monad, and produce a final  result rB. The type synonyms provided here are simply wrappers around this  type.  Since 1.0.0 GThe underlying datatype for all the types in this package. In has six  type parameters:  l7 is the type of values that may be left over from this Pipe. A Pipe  with no leftovers would use Void( here, and one with leftovers would use  the same type as the i4 parameter. Leftovers are automatically provided to  the next Pipe in the monadic chain.  i is the type of values for this Pipe's input stream.  o is the type of values for this Pipe's output stream.  u& is the result type from the upstream Pipe.  m is the underlying monad.  r is the result type.  A basic intuition is that every Pipe$ produces a stream of output values  (oH), and eventually indicates that this stream is terminated by sending a  result (r). On the receiving end of a Pipe, these become the i and u  parameters.  Since 0.5.0 FReturn leftover input, which should be provided to future operations. 4Require running of a monadic action to get the next Pipe. Processing with this Pipe* is complete, providing the final result. DRequest more input from upstream. The first field takes a new input  value and provides a new Pipe&. The second takes an upstream result D value, which indicates that upstream is producing no more results. EProvide new output to be sent downstream. This constructor has three  fields: the next Pipe. to be used, a finalization function, and the  output value. -Wait for a single input value from upstream.  Since 0.5.0 This is similar to await/, but will return the upstream result value as  Left if available.  Since 0.5.0 0Wait for input forever, calling the given inner Pipe for each piece of . new input. Returns the upstream result type.  Since 0.5.0 !9Send a single output value downstream. If the downstream Pipe  terminates, this Pipe will terminate as well.  Since 0.5.0 " Similar to yield6, but additionally takes a finalizer to be run if the  downstream Pipe terminates.  Since 0.5.0 #IProvide a single piece of leftover input to be consumed by the next pipe ! in the current monadic binding. NoteD: it is highly encouraged to only return leftover values from input ! already consumed from upstream.  Since 0.5.0 $)Perform some allocation and run an inner Pipe. Two guarantees are given  about resource finalization:   It will be prompt5. The finalization will be run as early as possible. ' It is exception safe. Due to usage of  resourcet, the finalization will + be run in the event of any exceptions.  Since 0.5.0 %'Add some code to be run when the given Pipe cleans up.  Since 0.4.1 & The identity Pipe.  Since 0.5.0 'KCompose a left and right pipe together into a complete pipe. The left pipe < will be automatically closed when the right pipe finishes.  Since 0.5.0 (Same as ', but automatically applies + to the right Pipe.  Since 0.5.0 ) Connect a Source to a Sink+ until the latter closes. Returns both the  most recent state of the Source and the result of the Sink.  We use a ResumableSource, to keep track of the most recent finalizer  provided by the Source.  Since 0.5.0 *+Run a pipeline until processing completes.  Since 0.5.0 + Transforms a Pipe0 that provides leftovers to one which does not,  allowing it to be composed. ;This function will provide any leftover values within this Pipe to any  calls to await;. If there are more leftover values than are demanded, the  remainder are discarded.  Since 0.5.0 ,Transform the monad that a Pipe lives in. FNote that the monad transforming function will be run multiple times, J resulting in unintuitive behavior in some cases. For a fuller treatment,  please see:  Hhttps://github.com/snoyberg/conduit/wiki/Dealing-with-monad-transformers $This function is just a synonym for ®.  Since 0.4.0 -/Apply a function to all the output values of a Pipe. This mimics the behavior of Æ for a  and  in pre-0.4  days.  Since 0.4.1 .Same as -", but use a function that returns Maybe values.  Since 0.5.0 /.Apply a function to all the input values of a Pipe.  Since 0.5.0 0Convert a list into a source.  Since 0.3.0 °The equivalent of GHC.Exts.build for Pipe.  Since 0.4.2 4GReturns a tuple of the upstream and downstream results. Note that this 4 will force consumption of the entire input stream.  Since 0.5.0 5 Unwraps a ResumableSource into a Source and a finalizer. A ResumableSource represents a Source! which has already been run, and J therefore has a finalizer registered. As a result, if we want to turn it  into a regular Source3, we need to ensure that the finalizer will be run * appropriately. By appropriately, I mean: E If a new finalizer is registered, the old one should not be called. : If the old one is called, it should not be called again. This function returns both a Source( and a finalizer which ensures that the > above two conditions hold. Once you call that finalizer, the Source is ! invalidated and cannot be used.  Since 0.5.2 6Fuse together two Pipe.s, connecting the output from the left to the  input of the right. Notice that the leftover parameter for the Pipe s must be Void. This N ensures that there is no accidental data loss of leftovers during fusion. If  you have a Pipe% with leftovers, you must first call +.  Since 0.5.0 7Same as 6*, but reverse the order of the arguments.  Since 0.5.0 8 Generalize a  to a .  Since 1.0.0 9 Generalize a  to a .  Since 1.0.0 ± Since 1.0.4 D ! output value " finalizer #$%True if Pipe ran to completion, False for early termination. &'()*+,-./map initial input to new input 'map new leftovers to initial leftovers 0°123456789±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒ, !"#$%&'()*+,-./0123456789, !"#$%&'()*+6712389,-./045< !"#$%&'()*+,-./0°123456789±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒNone:ECombines two sources. The new source will stop producing once either  source has been exhausted.  Since 0.3.0 ;JCombines two sinks. The new sink will complete when both input sinks have  completed. Any leftovers are discarded.  Since 0.4.1 :;:;:;:;None<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 ?KThe connect operator, which pulls data from a source and pushes to a sink.  If you would like to keep the Source open to be used for other 1 operations, use the connect-and-resume operator N.  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 AERight 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 BFusion operator, combining two Conduits together into a new Conduit. Both Conduit(s will be closed when the newly-created Conduit is closed. &Leftover data returned from the right Conduit will be discarded.  Since 0.4.0 CFWait for a single input value from upstream. If no data is available,  returns Nothing.  Since 0.5.0 DASend a value downstream to the next component to consume. If the N downstream component terminates, this call will never return control. If you 7 would like to register a cleanup function, please use H instead.  Since 0.5.0 EDProvide a single piece of leftover input to be consumed by the next + component in the current monadic binding. NoteD: it is highly encouraged to only return leftover values from input ! already consumed from upstream.  Since 0.5.0 FGPerform some allocation and run an inner component. Two guarantees are $ given about resource finalization:   It will be prompt5. The finalization will be run as early as possible. ' It is exception safe. Due to usage of  resourcet, the finalization will ( be run in the event of any exceptions.  Since 0.5.0 G<Add some code to be run when the given component cleans up. .The supplied cleanup function will be given a True if the component ran to  completion, or False6 if it terminated early due to a downstream component  terminating. DNote that this function is not exception safe. For that, please use  F.  Since 0.4.1 H Similar to D6, but additionally takes a finalizer to be run if the " downstream component terminates.  Since 0.5.0 ILWait for input forever, calling the given inner component for each piece of . new input. Returns the upstream result type. EThis function is provided as a convenience for the common pattern of  awaiting input, checking if it's Just and then looping.  Since 0.5.0 JTransform the monad that a ConduitM lives in. FNote that the monad transforming function will be run multiple times, J resulting in unintuitive behavior in some cases. For a fuller treatment,  please see:  Hhttps://github.com/snoyberg/conduit/wiki/Dealing-with-monad-transformers $This function is just a synonym for ®.  Since 0.4.0 K/Apply a function to all the output values of a ConduitM. This mimics the behavior of Æ for a  and  in pre-0.4 3 days. It can also be simulated by fusing with the map conduit from  Data.Conduit.List.  Since 0.4.1 LSame as K", but use a function that returns Maybe values.  Since 0.5.0 M.Apply a function to all the input values of a ConduitM.  Since 0.5.0 N9The connect-and-resume operator. This does not close the Source, but 4 instead returns it to be used again. This allows a Source to be used N incrementally in a large program, without forcing the entire program to live  in the Sink monad. Mnemonic: connect + do more.  Since 0.5.0 O#Continue processing after usage of $$+.  Since 0.5.0 PComplete processing of a ResumableSource. This will run the finalizer  associated with the ResumableSource). In order to guarantee process resource  finalization, you must use this operator after using $$+ and $$++.  Since 0.5.0 <=>?@ABCD output value EFGH finalizer IJKLMmap initial input to new input 'map new leftovers to initial leftovers NOPČ- 589<=>?@ABCDEFGHIJKLMNOP-?@ABCDEFGH89IJKLMNOP5<>=  <>=?@ABCDEFGHIJKLMNOPČNone"Q%Generate a source from a seed value.  Since 0.4.2 S8Enumerate 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 T@Produces an infinite stream of repeated applications of f to x. UA strict left fold.  Since 0.3.0 VA monadic strict left fold.  Since 0.3.0 WA monoidal strict left fold.  Since 0.5.3 X(A monoidal strict left fold in a Monad.  Since 1.0.8 Y.Apply the action to all values in the stream.  Since 0.3.0 ZBIgnore 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 o. . 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 _: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 Y.  Since 0.3.0 `2Apply a monadic action on all values in a stream. This Conduit8 can be used to perform a monadic side-effect for every - value, whilst passing the value through the Conduit as-is.  0 iterM f = mapM (\a -> f a >>= \() -> return a)  Since 0.5.6 aKApply a transformation that may fail to all values in a stream, discarding  the failures.  Since 0.5.1 bHApply a monadic transformation that may fail to all values in a stream,  discarding the failures.  Since 0.5.1 c Filter the Just& values from a stream, discarding the Nothing values.  Since 0.5.1 dGeneralization of c. It puts all values from  Ź into stream.  Since 1.0.6 eKApply a transformation to all values in a stream, concatenating the output  values.  Since 0.3.0 fHApply a monadic transformation to all values in a stream, concatenating  the output values.  Since 0.3.0 ge with an accumulator.  Since 0.3.0 h Analog of Ė for lists.  Since 1.0.6 iMonadic scanl.  Since 1.0.6 jf with an accumulator.  Since 0.3.0 kGeneralization of a and e. It applies function < to all values in a stream and send values inside resulting  Foldable downstream.  Since 1.0.6 lMonadic variant of k.  Since 1.0.6 mHConsume 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 n2Grouping input according to an equality function.  Since 0.3.0 oEEnsure 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 q, e.g.:   src $$ do  x <- isolate count =$ do  x <- someSink  sinkNull  return x  someOtherSink  ...  Since 0.3.0 p:Keep only values in the stream passing a given predicate.  Since 0.3.0 qGIgnore the remainder of values in the source. Particularly useful when  combined with o.  Since 0.3.0 rJA source that outputs no values. Note that this is just a type-restricted  synonym for Ģ.  Since 0.3.0 sRun a Pipe; repeatedly, and output its result value downstream. Stops 0 when no more input is available from upstream.  Since 0.5.0 #QRSTUVWXYZ[\]^_`abcdefghijklmnopqrsPipe to run repeatedly #QRSTUVWXYZ[\]^_`abcdefghijklmnopqrs#RrQSTUW[Z\]mqXVY^akcdeghnop_`iblfjs#QRSTUVWXYZ[\]^_`abcdefghijklmnopqrsNonet.Stream the contents of a file as binary data.  Since 0.3.0 uStream 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 vAn alternative to u.  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 closed it as soon as possible.  Since 0.3.0 w&Stream all incoming data to the given Ķ. Note that this function  will not automatically close the Handle when processing completes.  Since 0.3.0 xAn alternative to w.  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 yFStream 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 zHStream the contents of a handle as binary data, starting from a certain < offset and only consuming up to a certain number of bytes.  Since 1.0.8 {,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 -Return all bytes while the predicate returns True.  Since 0.3.0 €-Ignore all bytes while the predicate returns True.  Since 0.3.0 .Take the given number of bytes, if available.  Since 0.3.0 ‚&Drop up to the given number of bytes.  Since 0.5.0 ƒGSplit the input bytes into lines. In other words, split on the LF byte % (10), and strip it from the output.  Since 0.3.0 „*Stream the chunks from a lazy bytestring.  Since 0.5.0 …EStream the input data into a temp file and count the number of bytes & present. When complete, return a new Source reading from the temp file 1 together with the length of the input in bytes. 0All resources will be cleaned up automatically.  Since 1.0.5 †EConsume a stream of input into a lazy bytestring. Note that no lazy I/O D is performed, but rather all content is read into memory strictly.  Since 1.0.5 tuvwxyOffset Maximum count zOffset Maximum count {|}~€‚ƒ„…†tuvwxyz{|}~€‚ƒ„…†tuvyz{wx|„~€‚…†}ƒtuvwxyz{|}~€‚ƒ„…†None‡ Since 0.3.0 ŒA specific character encoding.  Since 0.3.0 Emit each line separately  Since 0.4.1 Ž9Variant of the lines function with an integer parameter. % The text length of any emitted line 4 never exceeds the value of the paramater. Whenever 4 this is about to happen a LengthExceeded exception 1 is thrown. This function should be used instead 4 of the lines function whenever we are dealing with / user input (e.g. a file upload) because we can't be sure that  user input won'/t have extraordinarily large lines which would . require large amounts of memory if consumed. CConvert 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 CConvert 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 ‘ Since 0.3.0 ’ Since 0.3.0 “ Since 0.3.0 ” Since 0.3.0 • Since 0.3.0 – Since 0.3.0 — Since 0.3.0 ˜ Since 1.0.8 ™ Since 1.0.8 š Since 1.0.8 › Since 1.0.8 œ Since 1.0.8  Since 1.0.8 #‡ˆ‰Š‹ŒĪĻŠŃŽŅӑ’“Ō”•Õ–—Öט™š›œŲهˆ‰Š‹ŒŽ‘’“”•–—˜™š›œŒ‘’“”•–—Ž‡‹Š‰ˆ˜™š›œ‡‹Š‰ˆŒĪĻŠŃŽŅӑ’“Ō”•Õ–—Öט™š›œŲŁNonež 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 žžžžŪ               !!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGGHIJKL),./0-+789:MNOP;QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzmZ{|YX}~€‚ƒ„…}†‡ˆ‰Š‹ŒŽ{|YX‘’““””•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾£æĄ£ĮĀ£Ćf£ÄÅ£ĘĒ…ČÉŹĖĢĶĪĻŠŃŅ ÓŌ conduit-1.0.8 Data.ConduitData.Conduit.InternalData.Conduit.UtilData.Conduit.ListData.Conduit.BinaryData.Conduit.TextData.Conduit.LazySystem.PosixFilemonad-control-0.3.2.2Control.Monad.Trans.ControlMonadBaseControlresourcet-0.4.9Control.Monad.Trans.Resource runException_ runExceptionrunExceptionT_ runResourceT%Control.Monad.Trans.Resource.Internal MonadResource monadThrow MonadThrow ResourceT runExceptionT ExceptionT unsafeLiftIO MonadUnsafeIOResumableSourceConduitConsumerSinkProducerSourceConduitM unConduitMPipeLeftoverPipeMDone NeedInput HaveOutputawaitawaitE awaitForeveryieldyieldOrleftoverbracketP addCleanupidPpipepipeL connectResumerunPipeinjectLeftovers transPipe mapOutputmapOutputMaybemapInput sourceList sourceToPipe sinkToPipe conduitToPipe withUpstreamunwrapResumable>+><+< toProducer toConsumerzipzipSinksFlushChunk$$$==$=$=$$+$$++$$+-unfold enumFromToiteratefoldfoldMfoldMapfoldMapMmapM_droptakeheadpeekmapmapMiterMmapMaybe mapMaybeM catMaybesconcat concatMap concatMapMconcatMapAccumscanlscanlMconcatMapAccumM mapFoldable mapFoldableMconsumegroupByisolatefiltersinkNull sourceNullsequence sourceFile sourceHandlesourceIOHandle sinkHandle sinkIOHandlesourceFileRangesourceHandleRangesinkFile conduitFile takeWhile dropWhilelines sourceLbssinkCacheLengthsinkLbs TextExceptionLengthExceededEncodeExceptionDecodeExceptionCodec linesBoundedencodedecodeutf8utf16_leutf16_beutf32_leutf32_beascii iso8859_1 foldLineswithLine lazyConsumeFDFlagclosec_writec_readc_openoRdonlyoWronlyoCreatopenRead openWritereadwrite mmorph-1.0.0Control.Monad.MorphhoistbaseGHC.Basefmapbuild$fMFunctorPipe$fMonoidConduitM$fMonadBasebaseConduitM$fMonadErroreConduitM$fMonadRWSrwsConduitM$fMonadStatesConduitM$fMonadWriterwConduitM$fMonadReaderrConduitM$fMonadErrorePipe$fMonadRWSrwsPipe$fMonadStatesPipe$fMonadWriterwPipe$fMonadReaderrPipe$fMonadResourcePipe $fMonoidPipe$fMonadActivePipe$fMonadThrowPipe $fMonadIOPipe$fMonadTransPipe$fMonadBasebasePipe $fMonadPipe$fApplicativePipe $fFunctorPipe$fFunctorFlushGHC.Enumsucc Data.FoldableFoldableGHC.List Data.MonoidmemptyGHC.IO.Handle.TypesHandle codecName codecEncode codecDecode byteSplits splitSlowly utf16Requiredutf32SplitBytes tryEvaluate maybeDecode$fExceptionTextException $fShowCodec monadActive