Ξυ³h*%d!σ…      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„0.1.4.0None9ΛΨέ Ε… fast-builderA … is like a , but an upper bound of its size is known before it actually starts filling buffers. It means just one overflow check is sufficient for each …. fast-builderΖAn internal type for making it easier to define builders. A value of  a can do everything a 3 can do, and in addition, returns a value of type a upon completion. fast-builderUsed in the implementation of &Λ. This is a message sent from the consumer thread to the builder thread, requesting the builder thread to temporarily pause execution. Later, the consumer thread may request resumption by filling the †. fast-builderUsed in the implementation of &ξ. This is an exception thrown by the consumer thread to itself when it has finished filling the first chunk of the output. After this, a thread will be forked, and the execution of the builder will be resumed in the new thread, using . fast-builder8A response from the builder thread to the driver thread. fast-builder1A synchronous exception was thrown by the builder  fast-builder!The builder thread has completed.  fast-builderυThe builder thread has finished generating one chunk, and waits for another request with the specified minimum size.  fast-builderThe builder thread has partially filled the current chunk, and wants to emit the bytestring to be included in the final output.  fast-builder7A request from the driver thread to the builder thread. fast-builderA mutable buffer. fast-builderStarting position. fast-builder#Bytes written to the handle so far. fast-builderVariable-destination cases. fast-builder!Bytes are sent to another thread. fast-builderϊBytes are accumulated in a contiguous buffer until the size limit is reached. After that, the destination switches to a . fast-builder0Specifies where bytes generated by a builder go. fast-builder=The destination of data changes while the builder is running. fast-builder-Bytes are accumulated in a contiguous buffer. fast-builder#Bytes are first accumulated in the , then flushed to the ‡. fast-builder+The state of a builder. The components are:The "cur" pointerThe "end" pointerThe state token fast-builder9 is an auxiliary type for efficiently generating a long ˆ. It is isomorphic to lazy ˆ., but offers constant-time concatanation via ‰.Use & to turn a  into a ˆ fast-builderCreate a builder from a BuildM. fast-builder&Embed a builder in the BuildM context.  fast-builderGet the .! fast-builderGet the current pointer." fast-builderGet the end-of-buffer pointer.# fast-builderSet the current pointer.$ fast-builderSet the end-of-buffer pointer.Š fast-builder Perform IO.‹ fast-builderEmbed a  transformer into .Œ fast-builderTurn a  into a ….% fast-builderRun a builder.& fast-builderTurn a  into a lazy ˆ.Performance hint: when the resulting ˆΰ does not fit in one chunk, this function forks a thread. Due to this, the performance degrades sharply if you use this function from a bound thread. Note in particular that the main thread is a bound thread when you use ghc -threaded.'To avoid this problem, do one of these:Make sure the resulting ˆ6 is consumed in an unbound thread. Consider using runInUnboundThread for this.Use other function to run the 1 instead. Functions that don't return a lazy ˆ do not have this issue.Link your program without  -threaded.' fast-builderLike &Φ, but allows the user to specify the initial and the subsequent desired buffer sizes.Ž fast-builder+Continue a suspended builder using threads. fast-builder3Run the given suspended builder using a new thread. fast-builderThe body of the builder thread.‘ fast-builderRun a ’.( fast-builderTurn a  into a strict “.) fast-builder Output a  to a ‡.* fast-builder Output a  to a ‡&. Returns the number of bytes written.+ fast-builderLike  hPutBuffer°, but allows the user to specify the initial and the subsequent desired buffer sizes. This function may be useful for setting large buffer when high throughput I/O is needed.” fast-builderTurn a • into a , using UTF-8,, fast-builderTurn a value of type a into a , using the given .– fast-builderTurn a … into a .- fast-builderTurn a value of type a into a , using the given —.. fast-builderTurn a list of values of type a into a , using the given ./ fast-builderTurn a list of values of type a into a , using the given —.0 fast-builderTurn a “ to a .1 fast-builderTurn a “ to a . If the size of the “Μ is larger than the given threshold, avoid copying it as much as possible.2 fast-builderTurn a “ to a . The “7 will be copied to the buffer, regardless of the size.3 fast-builderLike 26, but assumes that the current buffer is large enough.4 fast-builderTurn a “ to a . When possible, the given “Δ will not be copied, and inserted directly into the output instead.˜ fast-builderThe body of the 4, worker-wrappered manually.5 fast-builderTurn a C String into a *. The behavior is undefined if the given ™5 does not point to a constant null-terminated string.6 fast-builderTurn a š into a *. The behavior is undefined if the given š+ does not point to a constant memory block.7 fast-builder7 n ensures that at least nε bytes of free space is available in the current buffer, by allocating a new buffer when necessary.8 fast-builder8 n- allocates a new buffer, containing at least n bytes.› fast-builderThe body of the 8% function, worker-wrappered manually.œ fast-builder:Return the remaining size of the current buffer, in bytes.9 fast-builder9 b is equivalent to b$, but it allows GHC to assume that bδ will be run at most once. This can enable various optimizations that greately improve performance.9There are two types of typical situations where a use of 9 is often a win:?When constructing a builder using a recursive function. e.g. rebuild $ foldr ....ΓWhen constructing a builder using a conditional expression. e.g. rebuild $ case x of ...  fast-builder/Wait for a request, and switch to a new buffer.ž fast-buildergrowBuffer bufRef req1 reallocates the buffer, growing it by at least req.Ÿ fast-builderPut the content of the  to the ‡, and empty the .  fast-builderswitchQueue qRef minSize adv discards the old  and sets up a new empty  of at least minSize large. If the old ! is large enough, it is re-used.‘ fast-builder%growBufferBounded dRef fptr bound req1 reallocates the buffer, growing it by at least req". If the buffer size would exceed bound1, it instead interrupts execution by throwing a , and switches to a .’ fast-builderThrow a  and switches to a .: fast-builder£ =  stringUtf8:    !"#$%&'()*+,-./0123456789:    !"#$%&'()*+,-./0123456789 Safe-Inferred ·>GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„ Safe-Inferred!!Μ&'()*+9,-0421HSILOTWZ]`JMPUX[^aGKNQRVY\_bcdefghijkl‚ƒ„mnopqrstuvwxyz{€|}~Μ&'()*+9,-0421HSILOTWZ]`JMPUX[^aGKNQRVY\_bcdefghijkl‚ƒ„mnopqrstuvwxyz{€|}~ Safe-Inferred!λ5656€       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡…ˆ‰Š‹Œ…Ž‘Š’“”•–—Š˜™ŠšŒ›…œŠ’žŸ… ‘… ’£€₯¦§¨©ͺ…«¬­+fast-builder-0.1.4.0-AfYlM6bbRQI92SLzObeQxa$Data.ByteString.FastBuilder.InternalData.ByteString.FastBuilder fast-builder)Data.ByteString.FastBuilder.Internal.Prim"Data.ByteString.FastBuilder.UnsafeBuildM runBuildMSuspendBuilderExceptionChunkOverflowExceptionResponseErrorDone MoreBufferInsertByteStringRequestQueue queueBuffer queueStart queueTotal DynamicSink ThreadedSinkBoundedGrowingBufferDataSink GrowingBuffer HandleSink BuilderStateBuilder unBuilder mkBuilder useBuildergetSinkgetCurgetEndsetCursetEnd runBuildertoLazyByteStringtoLazyByteStringWithtoStrictByteString hPutBuilderhPutBuilderLenhPutBuilderWith primBounded primFixedprimMapListBoundedprimMapListFixed byteStringbyteStringThresholdbyteStringCopybyteStringCopyNoCheckbyteStringInsert unsafeCStringunsafeCStringLen ensureBytesgetBytesrebuild$fIsStringBuilder$fMonoidBuilder$fSemigroupBuilder!$fExceptionChunkOverflowException$fShowChunkOverflowException"$fExceptionSuspendBuilderException$fShowSuspendBuilderException $fMonadBuildM$fApplicativeBuildM $fMonoidWrite$fSemigroupWrite$fFunctorBuildM$fShowResponseintHostint8int16LEint16BE int16Hostint32LEint32BE int32Hostint64LEint64BE int64HostwordHostword8word16LEword16BE word16Hostword32LEword32BE word32Hostword64LEword64BE word64HostfloatLEfloatBE floatHostdoubleLEdoubleBE doubleHostintDecint8Decint16Decint32Decint64DecwordDecword8Dec word16Dec word32Dec word64DecwordHexword8Hex word16Hex word32Hex word64Hex int8HexFixed int16HexFixed int32HexFixed int64HexFixed word8HexFixedword16HexFixedword32HexFixedword64HexFixed floatHexFixeddoubleHexFixedchar7string7char8string8charUtf8 stringUtf8 integerDecfloatDec doubleDecWritebaseGHC.MVarMVarGHC.IO.Handle.TypesHandlebytestring-0.11.5.2Data.ByteString.Lazy.Internal ByteStringGHC.Base<>io updateStatewriteBoundedPrim%Data.ByteString.Builder.Prim.Internal BoundedPrimcontinueBuilderThreadedtoBufferWriterbuilderThreadWithUnmask makeChunksData.ByteString.Builder.Extra BufferWriterData.ByteString.Internal.TypebuilderFromStringStringwrite FixedPrimbyteStringInsert_ GHC.ForeignCString CStringLen getBytes_remainingBytes handleRequest growBuffer flushQueue switchQueuegrowBufferBounded chunkOverflow Data.String fromString