<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link rel="previous" href="Bi_vint.html"> <link rel="next" href="Bi_stream.html"> <link rel="Up" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Bi_util" rel="Chapter" href="Bi_util.html"> <link title="Bi_share" rel="Chapter" href="Bi_share.html"> <link title="Bi_outbuf" rel="Chapter" href="Bi_outbuf.html"> <link title="Bi_inbuf" rel="Chapter" href="Bi_inbuf.html"> <link title="Bi_vint" rel="Chapter" href="Bi_vint.html"> <link title="Bi_io" rel="Chapter" href="Bi_io.html"> <link title="Bi_stream" rel="Chapter" href="Bi_stream.html"><link title="Node tags" rel="Section" href="#1_Nodetags"> <link title="Tags of variants and record fields" rel="Section" href="#1_Tagsofvariantsandrecordfields"> <link title="Atom writers" rel="Section" href="#1_Atomwriters"> <link title="Atom readers" rel="Section" href="#1_Atomreaders"> <link title="Generic tree" rel="Section" href="#1_Generictree"> <title>Bi_io</title> </head> <body> <div class="navbar"><a class="pre" href="Bi_vint.html" title="Bi_vint">Previous</a> <a class="up" href="index.html" title="Index">Up</a> <a class="post" href="Bi_stream.html" title="Bi_stream">Next</a> </div> <h1>Module <a href="type_Bi_io.html">Bi_io</a></h1> <pre><span class="keyword">module</span> Bi_io: <code class="code">sig</code> <a href="Bi_io.html">..</a> <code class="code">end</code></pre><div class="info module top"> Input and output functions for the Biniou serialization format<br> </div> <hr width="100%"> <br> <h1 id="1_Nodetags">Node tags</h1><br> <pre><span id="TYPEnode_tag"><span class="keyword">type</span> <code class="type"></code>node_tag</span> = <code class="type">int</code> </pre> <pre><span id="VALbool_tag"><span class="keyword">val</span> bool_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a bool node.<br> </div> <pre><span id="VALint8_tag"><span class="keyword">val</span> int8_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating an int8 node.<br> </div> <pre><span id="VALint16_tag"><span class="keyword">val</span> int16_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating an int16 node.<br> </div> <pre><span id="VALint32_tag"><span class="keyword">val</span> int32_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating an int32 node.<br> </div> <pre><span id="VALint64_tag"><span class="keyword">val</span> int64_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating an int64 node.<br> </div> <pre><span id="VALfloat32_tag"><span class="keyword">val</span> float32_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a float32 node.<br> </div> <pre><span id="VALfloat64_tag"><span class="keyword">val</span> float64_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a float64 node.<br> </div> <pre><span id="VALuvint_tag"><span class="keyword">val</span> uvint_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a uvint node.<br> </div> <pre><span id="VALsvint_tag"><span class="keyword">val</span> svint_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating an svint node.<br> </div> <pre><span id="VALstring_tag"><span class="keyword">val</span> string_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a string node.<br> </div> <pre><span id="VALarray_tag"><span class="keyword">val</span> array_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating an array node.<br> </div> <pre><span id="VALtuple_tag"><span class="keyword">val</span> tuple_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a tuple node.<br> </div> <pre><span id="VALrecord_tag"><span class="keyword">val</span> record_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a record node.<br> </div> <pre><span id="VALnum_variant_tag"><span class="keyword">val</span> num_variant_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a num_variant node.<br> </div> <pre><span id="VALvariant_tag"><span class="keyword">val</span> variant_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a variant node.<br> </div> <pre><span id="VALunit_tag"><span class="keyword">val</span> unit_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a unit node.<br> </div> <pre><span id="VALtable_tag"><span class="keyword">val</span> table_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a table node.<br> </div> <pre><span id="VALshared_tag"><span class="keyword">val</span> shared_tag</span> : <code class="type"><a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Tag indicating a shared node.<br> </div> <pre><span id="VALwrite_tag"><span class="keyword">val</span> write_tag</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> <a href="Bi_io.html#TYPEnode_tag">node_tag</a> -> unit</code></pre><div class="info "> Write one-byte tag to a buffer.<br> </div> <pre><span id="VALread_tag"><span class="keyword">val</span> read_tag</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> <a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Read one-byte tag from a buffer.<br> </div> <br> <h1 id="1_Tagsofvariantsandrecordfields">Tags of variants and record fields</h1><br> <pre><span id="TYPEhash"><span class="keyword">type</span> <code class="type"></code>hash</span> = <code class="type">int</code> </pre> <div class="info "> 31-bit hash<br> </div> <pre><span id="VALhash_name"><span class="keyword">val</span> hash_name</span> : <code class="type">string -> <a href="Bi_io.html#TYPEhash">hash</a></code></pre><div class="info "> Hash function used to compute field name tags and variant tags from their full name.<br> </div> <pre><span id="VALwrite_hashtag"><span class="keyword">val</span> write_hashtag</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> <a href="Bi_io.html#TYPEhash">hash</a> -> bool -> unit</code></pre><div class="info "> <code class="code">write_hashtag ob h has_arg</code> writes variant tag <code class="code">h</code> to buffer <code class="code">ob</code>. <code class="code">has_arg</code> indicates whether the variant has an argument. This function can be used for record field names as well, in which case <code class="code">has_arg</code> may only be <code class="code">true</code>.<br> </div> <pre><span id="VALstring_of_hashtag"><span class="keyword">val</span> string_of_hashtag</span> : <code class="type"><a href="Bi_io.html#TYPEhash">hash</a> -> bool -> string</code></pre><div class="info "> Same as <code class="code">write_hashtag</code> but writes to a string.<br> </div> <pre><span id="VALread_hashtag"><span class="keyword">val</span> read_hashtag</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> (<a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> <a href="Bi_io.html#TYPEhash">hash</a> -> bool -> 'a) -> 'a</code></pre><div class="info "> <code class="code">read_hashtag ib f</code> reads a variant tag as hash <code class="code">h</code> and flag <code class="code">has_arg</code> and returns <code class="code">f h has_arg</code>.<br> </div> <pre><span id="VALread_field_hashtag"><span class="keyword">val</span> read_field_hashtag</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> <a href="Bi_io.html#TYPEhash">hash</a></code></pre><div class="info "> <code class="code">read_field_hashtag ib</code> reads a field tag and returns the 31-bit hash.<br> </div> <pre><span id="VALmake_unhash"><span class="keyword">val</span> make_unhash</span> : <code class="type">string list -> <a href="Bi_io.html#TYPEhash">hash</a> -> string option</code></pre><div class="info "> Compute the hash of each string of the input list and return a function that converts a hash back to the original string. Lookups do not allocate memory blocks.<br> <b>Raises</b> <code>Failure</code> if the input list contains two different strings with the same hash.<br> </div> <pre><span id="TYPEint7"><span class="keyword">type</span> <code class="type"></code>int7</span> = <code class="type">int</code> </pre> <div class="info "> 7-bit int used to represent a num_variant tag.<br> </div> <pre><span id="VALwrite_numtag"><span class="keyword">val</span> write_numtag</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> <a href="Bi_io.html#TYPEint7">int7</a> -> bool -> unit</code></pre><div class="info "> <code class="code">write_numtag ob i has_arg</code> writes the tag of a num_variant. The tag name is represented by <code class="code">i</code> which must be within [0, 127] and the flag <code class="code">has_arg</code> which indicates the presence of an argument.<br> </div> <pre><span id="VALread_numtag"><span class="keyword">val</span> read_numtag</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> (<a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> <a href="Bi_io.html#TYPEint7">int7</a> -> bool -> 'a) -> 'a</code></pre><div class="info "> <code class="code">read_numtag ib f</code> reads a num_variant tag and processes the tag name <code class="code">i</code> and flag <code class="code">has_arg</code> using <code class="code">f</code>.<br> </div> <br> <h1 id="1_Atomwriters">Atom writers</h1><br> <br> The <code class="code">write_untagged_</code> functions write an untagged value (VAL) to an output buffer while the other <code class="code">write_</code> functions write a tagged value (TAGVAL).<br> <pre><span id="VALwrite_untagged_unit"><span class="keyword">val</span> write_untagged_unit</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> unit -> unit</code></pre> <pre><span id="VALwrite_untagged_bool"><span class="keyword">val</span> write_untagged_bool</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> bool -> unit</code></pre> <pre><span id="VALwrite_untagged_char"><span class="keyword">val</span> write_untagged_char</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> char -> unit</code></pre> <pre><span id="VALwrite_untagged_int8"><span class="keyword">val</span> write_untagged_int8</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int -> unit</code></pre> <pre><span id="VALwrite_untagged_int16"><span class="keyword">val</span> write_untagged_int16</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int -> unit</code></pre> <pre><span id="VALwrite_untagged_int32"><span class="keyword">val</span> write_untagged_int32</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int32 -> unit</code></pre> <pre><span id="VALwrite_untagged_int64"><span class="keyword">val</span> write_untagged_int64</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int64 -> unit</code></pre> <pre><span id="VALwrite_untagged_float32"><span class="keyword">val</span> write_untagged_float32</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> float -> unit</code></pre> <pre><span id="VALwrite_untagged_float64"><span class="keyword">val</span> write_untagged_float64</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> float -> unit</code></pre> <pre><span id="VALwrite_untagged_string"><span class="keyword">val</span> write_untagged_string</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> string -> unit</code></pre> <pre><span id="VALwrite_untagged_uvint"><span class="keyword">val</span> write_untagged_uvint</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int -> unit</code></pre> <pre><span id="VALwrite_untagged_svint"><span class="keyword">val</span> write_untagged_svint</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int -> unit</code></pre> <pre><span id="VALwrite_unit"><span class="keyword">val</span> write_unit</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> unit -> unit</code></pre> <pre><span id="VALwrite_bool"><span class="keyword">val</span> write_bool</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> bool -> unit</code></pre> <pre><span id="VALwrite_char"><span class="keyword">val</span> write_char</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> char -> unit</code></pre> <pre><span id="VALwrite_int8"><span class="keyword">val</span> write_int8</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int -> unit</code></pre> <pre><span id="VALwrite_int16"><span class="keyword">val</span> write_int16</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int -> unit</code></pre> <pre><span id="VALwrite_int32"><span class="keyword">val</span> write_int32</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int32 -> unit</code></pre> <pre><span id="VALwrite_int64"><span class="keyword">val</span> write_int64</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int64 -> unit</code></pre> <pre><span id="VALwrite_float32"><span class="keyword">val</span> write_float32</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> float -> unit</code></pre> <pre><span id="VALwrite_float64"><span class="keyword">val</span> write_float64</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> float -> unit</code></pre> <pre><span id="VALwrite_string"><span class="keyword">val</span> write_string</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> string -> unit</code></pre> <pre><span id="VALwrite_uvint"><span class="keyword">val</span> write_uvint</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int -> unit</code></pre> <pre><span id="VALwrite_svint"><span class="keyword">val</span> write_svint</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> int -> unit</code></pre><br> <h1 id="1_Atomreaders">Atom readers</h1><br> <br> The <code class="code">read_untagged_</code> functions read an untagged value (VAL) from an input buffer.<br> <pre><span id="VALread_untagged_unit"><span class="keyword">val</span> read_untagged_unit</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> unit</code></pre> <pre><span id="VALread_untagged_bool"><span class="keyword">val</span> read_untagged_bool</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> bool</code></pre> <pre><span id="VALread_untagged_char"><span class="keyword">val</span> read_untagged_char</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> char</code></pre> <pre><span id="VALread_untagged_int8"><span class="keyword">val</span> read_untagged_int8</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> int</code></pre> <pre><span id="VALread_untagged_int16"><span class="keyword">val</span> read_untagged_int16</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> int</code></pre> <pre><span id="VALread_untagged_int32"><span class="keyword">val</span> read_untagged_int32</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> int32</code></pre> <pre><span id="VALread_untagged_int64"><span class="keyword">val</span> read_untagged_int64</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> int64</code></pre> <pre><span id="VALread_untagged_float32"><span class="keyword">val</span> read_untagged_float32</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> float</code></pre> <pre><span id="VALread_untagged_float64"><span class="keyword">val</span> read_untagged_float64</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> float</code></pre> <pre><span id="VALread_untagged_string"><span class="keyword">val</span> read_untagged_string</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> string</code></pre> <pre><span id="VALread_untagged_uvint"><span class="keyword">val</span> read_untagged_uvint</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> int</code></pre> <pre><span id="VALread_untagged_svint"><span class="keyword">val</span> read_untagged_svint</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> int</code></pre> <pre><span id="VALskip"><span class="keyword">val</span> skip</span> : <code class="type"><a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> unit</code></pre><div class="info "> Read and discard a value. Useful for skipping unknown record fields.<br> </div> <br> <h1 id="1_Generictree">Generic tree</h1><br> <pre><span id="TYPEtree"><span class="keyword">type</span> <code class="type"></code>tree</span> = <code class="type">[ `Array of (<a href="Bi_io.html#TYPEnode_tag">node_tag</a> * <a href="Bi_io.html#TYPEtree">tree</a> array) option<br> | `Bool of bool<br> | `Float32 of float<br> | `Float64 of float<br> | `Int16 of int<br> | `Int32 of Int32.t<br> | `Int64 of Int64.t<br> | `Int8 of char<br> | `Num_variant of int * <a href="Bi_io.html#TYPEtree">tree</a> option<br> | `Record of (string option * <a href="Bi_io.html#TYPEhash">hash</a> * <a href="Bi_io.html#TYPEtree">tree</a>) array<br> | `Shared of <a href="Bi_io.html#TYPEtree">tree</a><br> | `String of string<br> | `Svint of int<br> | `Table of<br> ((string option * <a href="Bi_io.html#TYPEhash">hash</a> * <a href="Bi_io.html#TYPEnode_tag">node_tag</a>) array *<br> <a href="Bi_io.html#TYPEtree">tree</a> array array)<br> option<br> | `Tuple of <a href="Bi_io.html#TYPEtree">tree</a> array<br> | `Unit<br> | `Uvint of int<br> | `Variant of string option * <a href="Bi_io.html#TYPEhash">hash</a> * <a href="Bi_io.html#TYPEtree">tree</a> option ]</code> </pre> <div class="info "> Tree representing serialized data, useful for testing and for untyped transformations.<br> </div> <pre><span id="VALwrite_tree"><span class="keyword">val</span> write_tree</span> : <code class="type"><a href="Bi_outbuf.html#TYPEt">Bi_outbuf.t</a> -> <a href="Bi_io.html#TYPEtree">tree</a> -> unit</code></pre><div class="info "> Serialization of a tree to a buffer.<br> </div> <pre><span id="VALstring_of_tree"><span class="keyword">val</span> string_of_tree</span> : <code class="type"><a href="Bi_io.html#TYPEtree">tree</a> -> string</code></pre><div class="info "> Serialization of a tree into a string.<br> </div> <pre><span id="VALread_tree"><span class="keyword">val</span> read_tree</span> : <code class="type">?unhash:(<a href="Bi_io.html#TYPEhash">hash</a> -> string option) -> <a href="Bi_inbuf.html#TYPEt">Bi_inbuf.t</a> -> <a href="Bi_io.html#TYPEtree">tree</a></code></pre><div class="info "> Deserialization of a tree from a buffer.<br> </div> <pre><span id="VALtree_of_string"><span class="keyword">val</span> tree_of_string</span> : <code class="type">?unhash:(<a href="Bi_io.html#TYPEhash">hash</a> -> string option) -> string -> <a href="Bi_io.html#TYPEtree">tree</a></code></pre><div class="info "> Deserialization of a tree from a string.<br> </div> <pre><span id="VALtag_of_tree"><span class="keyword">val</span> tag_of_tree</span> : <code class="type"><a href="Bi_io.html#TYPEtree">tree</a> -> <a href="Bi_io.html#TYPEnode_tag">node_tag</a></code></pre><div class="info "> Returns the node tag of the given tree.<br> </div> <pre><span id="VALview_of_tree"><span class="keyword">val</span> view_of_tree</span> : <code class="type"><a href="Bi_io.html#TYPEtree">tree</a> -> string</code></pre> <pre><span id="VALview"><span class="keyword">val</span> view</span> : <code class="type">?unhash:(<a href="Bi_io.html#TYPEhash">hash</a> -> string option) -> string -> string</code></pre><div class="info "> Prints a human-readable representation of the data into a string.<br> </div> <pre><span id="VALprint_view_of_tree"><span class="keyword">val</span> print_view_of_tree</span> : <code class="type"><a href="Bi_io.html#TYPEtree">tree</a> -> unit</code></pre> <pre><span id="VALprint_view"><span class="keyword">val</span> print_view</span> : <code class="type">?unhash:(<a href="Bi_io.html#TYPEhash">hash</a> -> string option) -> string -> unit</code></pre><div class="info "> Prints a human-readable representation of the data to stdout.<br> </div> <pre><span id="VALoutput_view_of_tree"><span class="keyword">val</span> output_view_of_tree</span> : <code class="type">Pervasives.out_channel -> <a href="Bi_io.html#TYPEtree">tree</a> -> unit</code></pre> <pre><span id="VALoutput_view"><span class="keyword">val</span> output_view</span> : <code class="type">?unhash:(<a href="Bi_io.html#TYPEhash">hash</a> -> string option) -><br> Pervasives.out_channel -> string -> unit</code></pre><div class="info "> Prints a human-readable representation of the data to an out_channel.<br> </div> <pre><span id="VALsafety_test"><span class="keyword">val</span> safety_test</span> : <code class="type">unit -> unit</code></pre><div class="info "> Check that certain low-level hacks work as expected<br> </div> </body></html>