This file is indexed.

/usr/share/doc/libghc-blaze-builder-doc/html/Blaze-ByteString-Builder-Internal-Write.html is in libghc-blaze-builder-doc 0.4.0.1-3build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Blaze.ByteString.Builder.Internal.Write</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Blaze-ByteString-Builder-Internal-Write.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Blaze-ByteString-Builder-Internal-Write.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">blaze-builder-0.4.0.1: Efficient buffered output.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>(c) 2010 Simon Meier
               (c) 2010 Jasper van der Jeugt</td></tr><tr><th>License</th><td>BSD3-style (see LICENSE)</td></tr><tr><th>Maintainer</th><td>Leon Smith &lt;leon@melding-monads.com&gt;</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Portability</th><td>tested on GHC only</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Blaze.ByteString.Builder.Internal.Write</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Poking a buffer</a></li><li><a href="#g:2">Writing to abuffer</a></li><li><a href="#g:3">Constructing builders from writes</a></li><li><a href="#g:4">Writing <code>Storable</code>s</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A general and efficient write type that allows for the easy construction of
 builders for (smallish) bounded size writes to a buffer.</p><p>FIXME: Improve documentation.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">newtype</span> <a href="#t:Poke">Poke</a> = <a href="#v:Poke">Poke</a> {<ul class="subs"><li><a href="#v:runPoke">runPoke</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a>)</li></ul>}</li><li class="src short"><a href="#v:pokeN">pokeN</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Write">Write</a> = <a href="#v:Write">Write</a> !<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></li><li class="src short"><a href="#v:runWrite">runWrite</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a>)</li><li class="src short"><a href="#v:getBound">getBound</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:getBound-39-">getBound'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-String.html#t:String">String</a> -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:getPoke">getPoke</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></li><li class="src short"><a href="#v:exactWrite">exactWrite</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:boundedWrite">boundedWrite</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a> -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:writeLiftIO">writeLiftIO</a> :: (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:writeIf">writeIf</a> :: (a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:writeEq">writeEq</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; a -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:writeOrdering">writeOrdering</a> :: (a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:writeOrd">writeOrd</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; a -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:fromWrite">fromWrite</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -&gt; <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></li><li class="src short"><a href="#v:fromWriteSingleton">fromWriteSingleton</a> :: (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; a -&gt; <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></li><li class="src short"><a href="#v:fromWriteList">fromWriteList</a> :: (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; [a] -&gt; <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></li><li class="src short"><a href="#v:writeStorable">writeStorable</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:fromStorable">fromStorable</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; a -&gt; <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></li><li class="src short"><a href="#v:fromStorables">fromStorables</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; [a] -&gt; <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></li></ul></div><div id="interface"><h1 id="g:1">Poking a buffer</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a name="t:Poke" class="def">Poke</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#Poke" class="link">Source</a></p><div class="doc"><p>Changing a sequence of bytes starting from the given pointer. <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></code>s are
 the most primitive buffer manipulation. In most cases, you don't use the
 explicitely but as part of a <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></code>, which also tells how many bytes will
 be changed at most.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Poke" class="def">Poke</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:runPoke" class="def">runPoke</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a>)</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Poke" class="caption collapser" onclick="toggleSection('i:Poke')">Instances</p><div id="section.i:Poke" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></span> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#line-120" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:pokeN" class="def">pokeN</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#pokeN" class="link">Source</a></p><div class="doc"><p><code>pokeN size io</code> creates a write that denotes the writing of <code>size</code> bytes
 to a buffer using the IO action <code>io</code>. Note that <code>io</code> MUST write EXACTLY <code>size</code>
 bytes to the buffer!</p></div></div><h1 id="g:2">Writing to abuffer</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Write" class="def">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#Write" class="link">Source</a></p><div class="doc"><p>A write of a bounded number of bytes.</p><p>When defining a function <code>write :: a -&gt; Write</code> for some <code>a</code>, then it is
 important to ensure that the bound on the number of bytes written is
 data-independent. Formally,</p><pre> forall x y. getBound (write x) = getBound (write y)</pre><p>The idea is that this data-independent bound is specified such that the
 compiler can optimize the check, if there are enough free bytes in the buffer,
 to a single subtraction between the pointer to the next free byte and the
 pointer to the end of the buffer with this constant bound of the maximal
 number of bytes to be written.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Write" class="def">Write</a> !<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Write" class="caption collapser" onclick="toggleSection('i:Write')">Instances</p><div id="section.i:Write" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></span> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#line-130" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:runWrite" class="def">runWrite</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a>) <a href="src/Blaze-ByteString-Builder-Internal-Write.html#runWrite" class="link">Source</a></p><div class="doc"><p>Run the <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></code> action of a write.</p></div></div><div class="top"><p class="src"><a name="v:getBound" class="def">getBound</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#getBound" class="link">Source</a></p><div class="doc"><p>Extract the maximal number of bytes that this write could write.</p></div></div><div class="top"><p class="src"><a name="v:getBound-39-" class="def">getBound'</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#getBound%27" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Name of caller: for debugging purposes.</p></td></tr><tr><td class="src">-&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Extract the maximal number of bytes that this write could write in any
 case. Assumes that the bound of the write is data-independent.</p></div></div><div class="top"><p class="src"><a name="v:getPoke" class="def">getPoke</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#getPoke" class="link">Source</a></p><div class="doc"><p>Extract the <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></code> action of a write.</p></div></div><div class="top"><p class="src"><a name="v:exactWrite" class="def">exactWrite</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#exactWrite" class="link">Source</a></p><div class="doc"><p><code>exactWrite size io</code> creates a bounded write that can later be converted to
 a builder that writes exactly <code>size</code> bytes. Note that <code>io</code> MUST write
 EXACTLY <code>size</code> bytes to the buffer!</p></div></div><div class="top"><p class="src"><a name="v:boundedWrite" class="def">boundedWrite</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a> -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#boundedWrite" class="link">Source</a></p><div class="doc"><p><code>boundedWrite size write</code> creates a bounded write from a <code>write</code> that does
 not write more than <code>size</code> bytes.</p></div></div><div class="top"><p class="src"><a name="v:writeLiftIO" class="def">writeLiftIO</a> :: (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeLiftIO" class="link">Source</a></p><div class="doc"><p><code>writeLiftIO io write</code> creates a write executes the <code>io</code> action to compute
 the value that is then written.</p></div></div><div class="top"><p class="src"><a name="v:writeIf" class="def">writeIf</a> :: (a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeIf" class="link">Source</a></p><div class="doc"><p><code>writeIf p wTrue wFalse x</code> creates a <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></code> with a <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></code> equal to <code>wTrue
 x</code>, if <code>p x</code> and equal to <code>wFalse x</code> otherwise. The bound of this new
 <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></code> is the maximum of the bounds for either <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></code>. This yields a data
 independent bound, if the bound for <code>wTrue</code> and <code>wFalse</code> is already data
 independent.</p></div></div><div class="top"><p class="src"><a name="v:writeEq" class="def">writeEq</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; a -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeEq" class="link">Source</a></p><div class="doc"><p>Compare the value to a test value and use the first write action for the
 equal case and the second write action for the non-equal case.</p></div></div><div class="top"><p class="src"><a name="v:writeOrdering" class="def">writeOrdering</a> :: (a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeOrdering" class="link">Source</a></p><div class="doc"><p>TODO: Test this. It might well be too difficult to use.
   FIXME: Better name required!</p></div></div><div class="top"><p class="src"><a name="v:writeOrd" class="def">writeOrd</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; a -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeOrd" class="link">Source</a></p><div class="doc"><p>A write combinator useful to build decision trees for deciding what value
 to write with a constant bound on the maximal number of bytes written.</p></div></div><h1 id="g:3">Constructing builders from writes</h1><div class="top"><p class="src"><a name="v:fromWrite" class="def">fromWrite</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -&gt; <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#fromWrite" class="link">Source</a></p><div class="doc"><p>Create a builder that execute a single <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:fromWriteSingleton" class="def">fromWriteSingleton</a> :: (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; a -&gt; <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#fromWriteSingleton" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:fromWriteList" class="def">fromWriteList</a> :: (a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -&gt; [a] -&gt; <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#fromWriteList" class="link">Source</a></p><div class="doc"><p>Construct a <code><a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></code> writing a list of data one element at a time.</p></div></div><h1 id="g:4">Writing <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a></code>s</h1><div class="top"><p class="src"><a name="v:writeStorable" class="def">writeStorable</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; a -&gt; <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeStorable" class="link">Source</a></p><div class="doc"><p>Write a storable value.</p></div></div><div class="top"><p class="src"><a name="v:fromStorable" class="def">fromStorable</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; a -&gt; <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#fromStorable" class="link">Source</a></p><div class="doc"><p>A builder that serializes a storable value. No alignment is done.</p></div></div><div class="top"><p class="src"><a name="v:fromStorables" class="def">fromStorables</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; [a] -&gt; <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#fromStorables" class="link">Source</a></p><div class="doc"><p>A builder that serializes a list of storable values by writing them
 consecutively. No alignment is done. Parsing information needs to be
 provided externally.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.1</p></div></body></html>