Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > decccc6a629f077e549a3762e84f29fd > files > 47

ghc-blaze-builder-devel-0.2.1.4-1.fc14.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>Blaze.ByteString.Builder.Internal</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Blaze-ByteString-Builder-Internal.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>blaze-builder-0.2.1.4: Efficient buffered output.</TD
><TD CLASS="topbut"
><A HREF="src/Blaze-ByteString-Builder-Internal.html"
>Source code</A
></TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>Blaze.ByteString.Builder.Internal</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>tested on GHC only</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>experimental</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>Simon Meier &lt;iridcode@gmail.com&gt;</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>Build Steps
</A
></DT
><DT
><A HREF="#2"
>Builder
</A
></DT
><DT
><A HREF="#3"
>Put
</A
></DT
><DT
><A HREF="#4"
>Writes
</A
></DT
><DT
><A HREF="#5"
>Execution
</A
></DT
><DT
><A HREF="#6"
>Deafult Sizes
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
>Core types and functions for the <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TT
> monoid and the <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#t%3APut"
>Put</A
></TT
> monad.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ABufRange"
>BufRange</A
>  = <A HREF="#v%3ABufRange"
>BufRange</A
> !(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord8"
>Word8</A
>) !(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord8"
>Word8</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ABuildSignal"
>BuildSignal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ABuildStep"
>BuildStep</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Adone"
>done</A
> ::  <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; a -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AbufferFull"
>bufferFull</A
> ::  <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> a)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AinsertByteString"
>insertByteString</A
> ::  <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString.html#t%3AByteString"
>ByteString</A
> -&gt; (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> a)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ABuilder"
>Builder</A
> </TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromBuildStepCont"
>fromBuildStepCont</A
> :: (<SPAN CLASS="keyword"
>forall</SPAN
> r.  (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> r)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> r)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromPut"
>fromPut</A
> ::  <A HREF="Blaze-ByteString-Builder-Internal.html#t%3APut"
>Put</A
> a -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aflush"
>flush</A
> :: <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3APut"
>Put</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AputBuilder"
>putBuilder</A
> :: <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
> -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3APut"
>Put</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AputBuildStepCont"
>putBuildStepCont</A
> ::  (<SPAN CLASS="keyword"
>forall</SPAN
> r.  (a -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> r)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> r)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3APut"
>Put</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
>module <A HREF="Blaze-ByteString-Builder-Internal-Write.html"
>Blaze.ByteString.Builder.Internal.Write</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoLazyByteString"
>toLazyByteString</A
> :: <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString-Lazy.html#t%3AByteString"
>ByteString</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoLazyByteStringWith"
>toLazyByteStringWith</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString-Lazy.html#t%3AByteString"
>ByteString</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString-Lazy.html#t%3AByteString"
>ByteString</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoByteString"
>toByteString</A
> :: <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString.html#t%3AByteString"
>ByteString</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoByteStringIO"
>toByteStringIO</A
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString.html#t%3AByteString"
>ByteString</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
>) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoByteStringIOWith"
>toByteStringIOWith</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; (<A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString.html#t%3AByteString"
>ByteString</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
>) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdefaultFirstBufferSize"
>defaultFirstBufferSize</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdefaultMinimalBufferSize"
>defaultMinimalBufferSize</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdefaultBufferSize"
>defaultBufferSize</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdefaultMaximalCopySize"
>defaultMaximalCopySize</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>Build Steps
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:BufRange"
><A NAME="t%3ABufRange"
></A
></A
><B
>BufRange</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#BufRange"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:BufRange"
><A NAME="v%3ABufRange"
></A
></A
><B
>BufRange</B
> !(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord8"
>Word8</A
>) !(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord8"
>Word8</A
>)</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:BuildSignal"
><A NAME="t%3ABuildSignal"
></A
></A
><B
>BuildSignal</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#BuildSignal"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:BuildStep"
><A NAME="t%3ABuildStep"
></A
></A
><B
>BuildStep</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#BuildStep"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:done"
><A NAME="v%3Adone"
></A
></A
><B
>done</B
> ::  <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; a -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#done"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:bufferFull"
><A NAME="v%3AbufferFull"
></A
></A
><B
>bufferFull</B
> ::  <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> a)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#bufferFull"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:insertByteString"
><A NAME="v%3AinsertByteString"
></A
></A
><B
>insertByteString</B
> ::  <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-Ptr.html#t%3APtr"
>Ptr</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord8"
>Word8</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString.html#t%3AByteString"
>ByteString</A
> -&gt; (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> a)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#insertByteString"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Builder
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Builder"
><A NAME="t%3ABuilder"
></A
></A
><B
>Builder</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#Builder"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Builder')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Builder" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Monoid.html#t%3AMonoid"
>Monoid</A
> <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:fromBuildStepCont"
><A NAME="v%3AfromBuildStepCont"
></A
></A
><B
>fromBuildStepCont</B
> :: (<SPAN CLASS="keyword"
>forall</SPAN
> r.  (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> r)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> r)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#fromBuildStepCont"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:fromPut"
><A NAME="v%3AfromPut"
></A
></A
><B
>fromPut</B
> ::  <A HREF="Blaze-ByteString-Builder-Internal.html#t%3APut"
>Put</A
> a -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#fromPut"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Ignore the value of a put and only exploit its output side effect.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:flush"
><A NAME="v%3Aflush"
></A
></A
><B
>flush</B
> :: <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal.html#flush"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Output all data written in the current buffer and start a new chunk.
</P
><P
>The use uf this function depends on how the resulting bytestrings are
 consumed. <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3Aflush"
>flush</A
></TT
> is possibly not very useful in non-interactive scenarios.
 However, it is kept for compatibility with the builder provided by
 Data.Binary.Builder.
</P
><P
>When using <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AtoLazyByteString"
>toLazyByteString</A
></TT
> to extract a lazy <TT
><A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString-Lazy.html#t%3AByteString"
>ByteString</A
></TT
> from a
 <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TT
>, this means that a new chunk will be started in the resulting lazy
 <TT
><A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString-Lazy.html#t%3AByteString"
>ByteString</A
></TT
>. The remaining part of the buffer is spilled, if the
 reamining free space is smaller than the minimal desired buffer size.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Put
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Put"
><A NAME="t%3APut"
></A
></A
><B
>Put</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#Put"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Put')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Put" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> <A HREF="Blaze-ByteString-Builder-Internal.html#t%3APut"
>Put</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> <A HREF="Blaze-ByteString-Builder-Internal.html#t%3APut"
>Put</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:putBuilder"
><A NAME="v%3AputBuilder"
></A
></A
><B
>putBuilder</B
> :: <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
> -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3APut"
>Put</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#putBuilder"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Put the given builder.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:putBuildStepCont"
><A NAME="v%3AputBuildStepCont"
></A
></A
><B
>putBuildStepCont</B
> ::  (<SPAN CLASS="keyword"
>forall</SPAN
> r.  (a -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> r)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABufRange"
>BufRange</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuildSignal"
>BuildSignal</A
> r)) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3APut"
>Put</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal-Types.html#putBuildStepCont"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>Writes
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
>module <A HREF="Blaze-ByteString-Builder-Internal-Write.html"
>Blaze.ByteString.Builder.Internal.Write</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>Execution
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:toLazyByteString"
><A NAME="v%3AtoLazyByteString"
></A
></A
><B
>toLazyByteString</B
> :: <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString-Lazy.html#t%3AByteString"
>ByteString</A
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal.html#toLazyByteString"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Extract the lazy <TT
><A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString-Lazy.html#t%3AByteString"
>ByteString</A
></TT
> from the builder by running it with default
 buffer sizes. Use this function, if you do not have any special
 considerations with respect to buffer sizes.
</P
><PRE
> <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AtoLazyByteString"
>toLazyByteString</A
></TT
> b = <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AtoLazyByteStringWith"
>toLazyByteStringWith</A
></TT
> <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AdefaultBufferSize"
>defaultBufferSize</A
></TT
> <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AdefaultMinimalBufferSize"
>defaultMinimalBufferSize</A
></TT
> <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AdefaultFirstBufferSize"
>defaultFirstBufferSize</A
></TT
> b L.empty</PRE
><P
>Note that <TT
><TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AtoLazyByteString"
>toLazyByteString</A
></TT
></TT
> is a Monoid homomorphism.
</P
><PRE
> toLazyByteString mempty          == mempty
 toLazyByteString (x `mappend` y) == toLazyByteString x `mappend` toLazyByteString y
</PRE
><P
>However, in the second equation, the left-hand-side is generally faster to
 execute.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:toLazyByteStringWith"
><A NAME="v%3AtoLazyByteStringWith"
></A
></A
><B
>toLazyByteStringWith</B
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal.html#toLazyByteStringWith"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
>Buffer size (upper-bounds the resulting chunk size).
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
>Minimal free buffer space for continuing filling
 the same buffer after a <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3Aflush"
>flush</A
></TT
> or a direct bytestring
 insertion. This corresponds to the minimal desired
 chunk size.
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
>Size of the first buffer to be used and copied for
 larger resulting sequences
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TD
><TD CLASS="rdoc"
>Builder to run.
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString-Lazy.html#t%3AByteString"
>ByteString</A
></TD
><TD CLASS="rdoc"
>Lazy bytestring to output after the builder is
 finished.
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString-Lazy.html#t%3AByteString"
>ByteString</A
></TD
><TD CLASS="rdoc"
>Resulting lazy bytestring
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>Run a <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TT
> with the given buffer sizes.
</P
><P
>Use this function for integrating the <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TT
> type with other libraries
 that generate lazy bytestrings.
</P
><P
>Note that the builders should guarantee that on average the desired chunk
 size is attained. Builders may decide to start a new buffer and not
 completely fill the existing buffer, if this is faster. However, they should
 not spill too much of the buffer, if they cannot compensate for it.
</P
><P
>A call <TT
>toLazyByteStringWith bufSize minBufSize firstBufSize</TT
> will generate
 a lazy bytestring according to the following strategy. First, we allocate
 a buffer of size <TT
>firstBufSize</TT
> and start filling it. If it overflows, we
 allocate a buffer of size <TT
>minBufSize</TT
> and copy the first buffer to it in
 order to avoid generating a too small chunk. Finally, every next buffer will
 be of size <TT
>bufSize</TT
>. This, slow startup strategy is required to achieve
 good speed for short (&lt;200 bytes) resulting bytestrings, as for them the
 allocation cost is of a large buffer cannot be compensated. Moreover, this
 strategy also allows us to avoid spilling too much memory for short
 resulting bytestrings.
</P
><P
>Note that setting <TT
>firstBufSize &gt;= minBufSize</TT
> implies that the first buffer
 is no longer copied but allocated and filled directly. Hence, setting
 <TT
>firstBufSize = bufSize</TT
> means that all chunks will use an underlying buffer
 of size <TT
>bufSize</TT
>. This is recommended, if you know that you always output
 more than <TT
>minBufSize</TT
> bytes.
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:toByteString"
><A NAME="v%3AtoByteString"
></A
></A
><B
>toByteString</B
> :: <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString.html#t%3AByteString"
>ByteString</A
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal.html#toByteString"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Run the builder to construct a strict bytestring containing the sequence
 of bytes denoted by the builder. This is done by first serializing to a lazy bytestring and then packing its
 chunks to a appropriately sized strict bytestring.
</P
><PRE
> toByteString = packChunks . toLazyByteString
</PRE
><P
>Note that <TT
><TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AtoByteString"
>toByteString</A
></TT
></TT
> is a Monoid homomorphism.
</P
><PRE
> toByteString mempty          == mempty
 toByteString (x `mappend` y) == toByteString x `mappend` toByteString y
</PRE
><P
>However, in the second equation, the left-hand-side is generally faster to
 execute.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:toByteStringIO"
><A NAME="v%3AtoByteStringIO"
></A
></A
><B
>toByteStringIO</B
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString.html#t%3AByteString"
>ByteString</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
>) -&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal.html#toByteStringIO"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Run the builder with a <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AdefaultBufferSize"
>defaultBufferSize</A
></TT
>d buffer and execute the given
 <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
></TT
> action whenever the buffer is full or gets flushed.
</P
><PRE
> <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AtoByteStringIO"
>toByteStringIO</A
></TT
> = <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AtoByteStringIOWith"
>toByteStringIOWith</A
></TT
> <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AdefaultBufferSize"
>defaultBufferSize</A
></TT
></PRE
><P
>This is a Monoid homomorphism in the following sense.
</P
><PRE
> toByteStringIO io mempty          == return ()
 toByteStringIO io (x `mappend` y) == toByteStringIO io x &gt;&gt; toByteStringIO io y
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:toByteStringIOWith"
><A NAME="v%3AtoByteStringIOWith"
></A
></A
><B
>toByteStringIOWith</B
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal.html#toByteStringIOWith"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
>Buffer size (upper bounds
 the number of bytes forced
 per call to the <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
></TT
> action).
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString.html#t%3AByteString"
>ByteString</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="rdoc"
><TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
></TT
> action to execute per
 full buffer, which is
 referenced by a strict
 <TT
><A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString.html#t%3AByteString"
>ByteString</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TD
><TD CLASS="rdoc"
><TT
><A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TT
> to run.
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="rdoc"
>Resulting <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
></TT
> action.
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
><TT
>toByteStringIOWith bufSize io b</TT
> runs the builder <TT
>b</TT
> with a buffer of
 at least the size <TT
>bufSize</TT
> and executes the <TT
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
></TT
> action <TT
>io</TT
> whenever the
 buffer is full.
</P
><P
>Compared to <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AtoLazyByteStringWith"
>toLazyByteStringWith</A
></TT
> this function requires less allocation,
 as the output buffer is only allocated once at the start of the
 serialization and whenever something bigger than the current buffer size has
 to be copied into the buffer, which should happen very seldomly for the
 default buffer size of 32kb. Hence, the pressure on the garbage collector is
 reduced, which can be an advantage when building long sequences of bytes.
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="6"
><A NAME="6"
>Deafult Sizes
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:defaultFirstBufferSize"
><A NAME="v%3AdefaultFirstBufferSize"
></A
></A
><B
>defaultFirstBufferSize</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal.html#defaultFirstBufferSize"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>The default length (64) for the first buffer to be allocated when
 converting a <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#t%3ABuilder"
>Builder</A
></TT
> to a lazy bytestring. 
</P
><P
>See <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AtoLazyByteStringWith"
>toLazyByteStringWith</A
></TT
> for further explanation.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:defaultMinimalBufferSize"
><A NAME="v%3AdefaultMinimalBufferSize"
></A
></A
><B
>defaultMinimalBufferSize</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal.html#defaultMinimalBufferSize"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>The minimal length (~4kb) a buffer must have before filling it and
 outputting it as a chunk of the output stream. 
</P
><P
>This size determines when a buffer is spilled after a <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3Aflush"
>flush</A
></TT
> or a direct
 bytestring insertion. It is also the size of the first chunk generated by
 <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AtoLazyByteString"
>toLazyByteString</A
></TT
>.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:defaultBufferSize"
><A NAME="v%3AdefaultBufferSize"
></A
></A
><B
>defaultBufferSize</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal.html#defaultBufferSize"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Default size (~32kb) for the buffer that becomes a chunk of the output
 stream once it is filled.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:defaultMaximalCopySize"
><A NAME="v%3AdefaultMaximalCopySize"
></A
></A
><B
>defaultMaximalCopySize</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="declbut"
><A HREF="src/Blaze-ByteString-Builder-Internal.html#defaultMaximalCopySize"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>The maximal number of bytes for that copying is cheaper than direct
 insertion into the output stream. This takes into account the fragmentation
 that may occur in the output buffer due to the early <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3Aflush"
>flush</A
></TT
> implied by the
 direct bytestring insertion.
</P
><PRE
><TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AdefaultMaximalCopySize"
>defaultMaximalCopySize</A
></TT
> = 2 * <TT
><A HREF="Blaze-ByteString-Builder-Internal.html#v%3AdefaultMinimalBufferSize"
>defaultMinimalBufferSize</A
></TT
></PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.6.1</TD
></TR
></TABLE
></BODY
></HTML
>