Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-updates > by-pkgid > aad5e8d45f28c2d43a4dc470983b342c > files > 260

ocaml-doc-4.02.3-6.1.mga6.noarch.rpm

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="generator" content="hevea 2.00">
<link rel="stylesheet" type="text/css" href="manual.css">
<title>Contents</title>
</head>
<body>
<a href="index.html"><img src="contents_motif.gif" alt="Up"></a>
<a href="foreword.html"><img src="next_motif.gif" alt="Next"></a>
<hr>
<h1 class="chapter" id="sec1">Contents</h1>
<ul class="ftoc1"><li class="li-toc">
<a href="index.html#sec6">Part&#XA0;I&#XA0;&#XA0;An introduction to OCaml</a>
<ul class="ftoc2"><li class="li-toc">
<a href="coreexamples.html#sec7">Chapter&#XA0;1&#XA0;&#XA0;The core language</a>
<ul class="ftoc3"><li class="li-toc">
<a href="coreexamples.html#sec8">1.1&#XA0;&#XA0;Basics</a>
</li><li class="li-toc"><a href="coreexamples.html#sec9">1.2&#XA0;&#XA0;Data types</a>
</li><li class="li-toc"><a href="coreexamples.html#sec10">1.3&#XA0;&#XA0;Functions as values</a>
</li><li class="li-toc"><a href="coreexamples.html#sec11">1.4&#XA0;&#XA0;Records and variants</a>
</li><li class="li-toc"><a href="coreexamples.html#sec12">1.5&#XA0;&#XA0;Imperative features</a>
</li><li class="li-toc"><a href="coreexamples.html#sec13">1.6&#XA0;&#XA0;Exceptions</a>
</li><li class="li-toc"><a href="coreexamples.html#sec14">1.7&#XA0;&#XA0;Symbolic processing of expressions</a>
</li><li class="li-toc"><a href="coreexamples.html#sec15">1.8&#XA0;&#XA0;Pretty-printing and parsing</a>
</li><li class="li-toc"><a href="coreexamples.html#sec16">1.9&#XA0;&#XA0;Standalone OCaml programs</a>
</li></ul>
</li><li class="li-toc"><a href="moduleexamples.html#sec17">Chapter&#XA0;2&#XA0;&#XA0;The module system</a>
<ul class="ftoc3"><li class="li-toc">
<a href="moduleexamples.html#sec18">2.1&#XA0;&#XA0;Structures</a>
</li><li class="li-toc"><a href="moduleexamples.html#sec19">2.2&#XA0;&#XA0;Signatures</a>
</li><li class="li-toc"><a href="moduleexamples.html#sec20">2.3&#XA0;&#XA0;Functors</a>
</li><li class="li-toc"><a href="moduleexamples.html#sec21">2.4&#XA0;&#XA0;Functors and type abstraction</a>
</li><li class="li-toc"><a href="moduleexamples.html#sec22">2.5&#XA0;&#XA0;Modules and separate compilation</a>
</li></ul>
</li><li class="li-toc"><a href="objectexamples.html#sec23">Chapter&#XA0;3&#XA0;&#XA0;Objects in OCaml</a>
<ul class="ftoc3"><li class="li-toc">
<a href="objectexamples.html#sec24">3.1&#XA0;&#XA0;Classes and objects</a>
</li><li class="li-toc"><a href="objectexamples.html#sec25">3.2&#XA0;&#XA0;Immediate objects</a>
</li><li class="li-toc"><a href="objectexamples.html#sec26">3.3&#XA0;&#XA0;Reference to self</a>
</li><li class="li-toc"><a href="objectexamples.html#sec27">3.4&#XA0;&#XA0;Initializers</a>
</li><li class="li-toc"><a href="objectexamples.html#sec28">3.5&#XA0;&#XA0;Virtual methods</a>
</li><li class="li-toc"><a href="objectexamples.html#sec29">3.6&#XA0;&#XA0;Private methods</a>
</li><li class="li-toc"><a href="objectexamples.html#sec30">3.7&#XA0;&#XA0;Class interfaces</a>
</li><li class="li-toc"><a href="objectexamples.html#sec31">3.8&#XA0;&#XA0;Inheritance</a>
</li><li class="li-toc"><a href="objectexamples.html#sec32">3.9&#XA0;&#XA0;Multiple inheritance</a>
</li><li class="li-toc"><a href="objectexamples.html#sec33">3.10&#XA0;&#XA0;Parameterized classes</a>
</li><li class="li-toc"><a href="objectexamples.html#sec34">3.11&#XA0;&#XA0;Polymorphic methods</a>
</li><li class="li-toc"><a href="objectexamples.html#sec35">3.12&#XA0;&#XA0;Using coercions</a>
</li><li class="li-toc"><a href="objectexamples.html#sec36">3.13&#XA0;&#XA0;Functional objects</a>
</li><li class="li-toc"><a href="objectexamples.html#sec37">3.14&#XA0;&#XA0;Cloning objects</a>
</li><li class="li-toc"><a href="objectexamples.html#sec38">3.15&#XA0;&#XA0;Recursive classes</a>
</li><li class="li-toc"><a href="objectexamples.html#sec39">3.16&#XA0;&#XA0;Binary methods</a>
</li><li class="li-toc"><a href="objectexamples.html#sec40">3.17&#XA0;&#XA0;Friends</a>
</li></ul>
</li><li class="li-toc"><a href="lablexamples.html#sec41">Chapter&#XA0;4&#XA0;&#XA0;Labels and variants</a>
<ul class="ftoc3"><li class="li-toc">
<a href="lablexamples.html#sec42">4.1&#XA0;&#XA0;Labels</a>
<ul class="ftoc4"><li class="li-toc">
<a href="lablexamples.html#sec43">4.1.1&#XA0;&#XA0;Optional arguments</a>
</li><li class="li-toc"><a href="lablexamples.html#sec44">4.1.2&#XA0;&#XA0;Labels and type inference</a>
</li><li class="li-toc"><a href="lablexamples.html#sec45">4.1.3&#XA0;&#XA0;Suggestions for labeling</a>
</li></ul>
</li><li class="li-toc"><a href="lablexamples.html#sec46">4.2&#XA0;&#XA0;Polymorphic variants</a>
<ul class="ftoc4"><li class="li-toc">
<a href="lablexamples.html#sec49">4.2.1&#XA0;&#XA0;Weaknesses of polymorphic variants</a>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="advexamples.html#sec50">Chapter&#XA0;5&#XA0;&#XA0;Advanced examples with classes and modules</a>
<ul class="ftoc3"><li class="li-toc">
<a href="advexamples.html#sec51">5.1&#XA0;&#XA0;Extended example: bank accounts</a>
</li><li class="li-toc"><a href="advexamples.html#sec52">5.2&#XA0;&#XA0;Simple modules as classes</a>
<ul class="ftoc4"><li class="li-toc">
<a href="advexamples.html#sec53">5.2.1&#XA0;&#XA0;Strings</a>
</li><li class="li-toc"><a href="advexamples.html#sec55">5.2.2&#XA0;&#XA0;Hashtbl</a>
</li><li class="li-toc"><a href="advexamples.html#sec56">5.2.3&#XA0;&#XA0;Sets</a>
</li></ul>
</li><li class="li-toc"><a href="advexamples.html#sec57">5.3&#XA0;&#XA0;The subject/observer pattern</a>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="index.html#sec58">Part&#XA0;II&#XA0;&#XA0;The OCaml language</a>
<ul class="ftoc2"><li class="li-toc">
<a href="language.html#sec59">Chapter&#XA0;6&#XA0;&#XA0;The OCaml language</a>
<ul class="ftoc3"><li class="li-toc">
<a href="lex.html#sec62">6.1&#XA0;&#XA0;Lexical conventions</a>
</li><li class="li-toc"><a href="values.html#sec75">6.2&#XA0;&#XA0;Values</a>
<ul class="ftoc4"><li class="li-toc">
<a href="values.html#sec76">6.2.1&#XA0;&#XA0;Base values</a>
</li><li class="li-toc"><a href="values.html#sec81">6.2.2&#XA0;&#XA0;Tuples</a>
</li><li class="li-toc"><a href="values.html#sec82">6.2.3&#XA0;&#XA0;Records</a>
</li><li class="li-toc"><a href="values.html#sec83">6.2.4&#XA0;&#XA0;Arrays</a>
</li><li class="li-toc"><a href="values.html#sec84">6.2.5&#XA0;&#XA0;Variant values</a>
</li><li class="li-toc"><a href="values.html#sec85">6.2.6&#XA0;&#XA0;Polymorphic variants</a>
</li><li class="li-toc"><a href="values.html#sec86">6.2.7&#XA0;&#XA0;Functions</a>
</li><li class="li-toc"><a href="values.html#sec87">6.2.8&#XA0;&#XA0;Objects</a>
</li></ul>
</li><li class="li-toc"><a href="names.html#sec88">6.3&#XA0;&#XA0;Names</a>
</li><li class="li-toc"><a href="types.html#sec91">6.4&#XA0;&#XA0;Type expressions</a>
</li><li class="li-toc"><a href="const.html#sec102">6.5&#XA0;&#XA0;Constants</a>
</li><li class="li-toc"><a href="patterns.html#sec103">6.6&#XA0;&#XA0;Patterns</a>
</li><li class="li-toc"><a href="expr.html#sec115">6.7&#XA0;&#XA0;Expressions</a>
<ul class="ftoc4"><li class="li-toc">
<a href="expr.html#sec116">6.7.1&#XA0;&#XA0;Basic expressions</a>
</li><li class="li-toc"><a href="expr.html#sec124">6.7.2&#XA0;&#XA0;Control structures</a>
</li><li class="li-toc"><a href="expr.html#sec131">6.7.3&#XA0;&#XA0;Operations on data structures</a>
</li><li class="li-toc"><a href="expr.html#sec138">6.7.4&#XA0;&#XA0;Operators</a>
</li><li class="li-toc"><a href="expr.html#sec139">6.7.5&#XA0;&#XA0;Objects</a>
</li><li class="li-toc"><a href="expr.html#sec145">6.7.6&#XA0;&#XA0;Coercions</a>
</li></ul>
</li><li class="li-toc"><a href="typedecl.html#sec149">6.8&#XA0;&#XA0;Type and exception definitions</a>
<ul class="ftoc4"><li class="li-toc">
<a href="typedecl.html#sec150">6.8.1&#XA0;&#XA0;Type definitions</a>
</li><li class="li-toc"><a href="typedecl.html#sec151">6.8.2&#XA0;&#XA0;Exception definitions</a>
</li></ul>
</li><li class="li-toc"><a href="classes.html#sec152">6.9&#XA0;&#XA0;Classes</a>
<ul class="ftoc4"><li class="li-toc">
<a href="classes.html#sec153">6.9.1&#XA0;&#XA0;Class types</a>
</li><li class="li-toc"><a href="classes.html#sec162">6.9.2&#XA0;&#XA0;Class expressions</a>
</li><li class="li-toc"><a href="classes.html#sec175">6.9.3&#XA0;&#XA0;Class definitions</a>
</li><li class="li-toc"><a href="classes.html#sec178">6.9.4&#XA0;&#XA0;Class specifications</a>
</li><li class="li-toc"><a href="classes.html#sec179">6.9.5&#XA0;&#XA0;Class type definitions</a>
</li></ul>
</li><li class="li-toc"><a href="modtypes.html#sec180">6.10&#XA0;&#XA0;Module types (module specifications)</a>
<ul class="ftoc4"><li class="li-toc">
<a href="modtypes.html#sec181">6.10.1&#XA0;&#XA0;Simple module types</a>
</li><li class="li-toc"><a href="modtypes.html#sec182">6.10.2&#XA0;&#XA0;Signatures</a>
</li><li class="li-toc"><a href="modtypes.html#sec192">6.10.3&#XA0;&#XA0;Functor types</a>
</li><li class="li-toc"><a href="modtypes.html#sec193">6.10.4&#XA0;&#XA0;The <span class="c007">with</span> operator</a>
</li></ul>
</li><li class="li-toc"><a href="modules.html#sec194">6.11&#XA0;&#XA0;Module expressions (module implementations)</a>
<ul class="ftoc4"><li class="li-toc">
<a href="modules.html#sec195">6.11.1&#XA0;&#XA0;Simple module expressions</a>
</li><li class="li-toc"><a href="modules.html#sec196">6.11.2&#XA0;&#XA0;Structures</a>
</li><li class="li-toc"><a href="modules.html#sec206">6.11.3&#XA0;&#XA0;Functors</a>
</li></ul>
</li><li class="li-toc"><a href="compunit.html#sec209">6.12&#XA0;&#XA0;Compilation units</a>
</li></ul>
</li><li class="li-toc"><a href="extn.html#sec210">Chapter&#XA0;7&#XA0;&#XA0;Language extensions</a>
<ul class="ftoc3"><li class="li-toc">
<a href="extn.html#sec211">7.1&#XA0;&#XA0;Integer literals for types <span class="c007">int32</span>, <span class="c007">int64</span>
and <span class="c007">nativeint</span></a>
</li><li class="li-toc"><a href="extn.html#sec212">7.2&#XA0;&#XA0;Streams and stream parsers</a>
</li><li class="li-toc"><a href="extn.html#sec213">7.3&#XA0;&#XA0;Recursive definitions of values</a>
</li><li class="li-toc"><a href="extn.html#sec214">7.4&#XA0;&#XA0;Range patterns</a>
</li><li class="li-toc"><a href="extn.html#sec215">7.5&#XA0;&#XA0;Assertion checking</a>
</li><li class="li-toc"><a href="extn.html#sec216">7.6&#XA0;&#XA0;Lazy evaluation</a>
<ul class="ftoc4"><li class="li-toc">
<a href="extn.html#sec217">7.6.1&#XA0;&#XA0;Lazy expressions</a>
</li><li class="li-toc"><a href="extn.html#sec218">7.6.2&#XA0;&#XA0;Lazy patterns</a>
</li></ul>
</li><li class="li-toc"><a href="extn.html#sec219">7.7&#XA0;&#XA0;Local modules</a>
</li><li class="li-toc"><a href="extn.html#sec220">7.8&#XA0;&#XA0;Recursive modules</a>
</li><li class="li-toc"><a href="extn.html#sec221">7.9&#XA0;&#XA0;Private types</a>
<ul class="ftoc4"><li class="li-toc">
<a href="extn.html#sec222">7.9.1&#XA0;&#XA0;Private variant and record types</a>
</li><li class="li-toc"><a href="extn.html#sec223">7.9.2&#XA0;&#XA0;Private type abbreviations</a>
</li><li class="li-toc"><a href="extn.html#sec224">7.9.3&#XA0;&#XA0;Private row types</a>
</li></ul>
</li><li class="li-toc"><a href="extn.html#sec225">7.10&#XA0;&#XA0;Local opens</a>
</li><li class="li-toc"><a href="extn.html#sec226">7.11&#XA0;&#XA0;Record notations</a>
</li><li class="li-toc"><a href="extn.html#sec227">7.12&#XA0;&#XA0;Explicit polymorphic type annotations</a>
</li><li class="li-toc"><a href="extn.html#sec228">7.13&#XA0;&#XA0;Locally abstract types</a>
</li><li class="li-toc"><a href="extn.html#sec230">7.14&#XA0;&#XA0;First-class modules</a>
</li><li class="li-toc"><a href="extn.html#sec233">7.15&#XA0;&#XA0;Recovering the type of a module</a>
</li><li class="li-toc"><a href="extn.html#sec234">7.16&#XA0;&#XA0;Substituting inside a signature</a>
</li><li class="li-toc"><a href="extn.html#sec235">7.17&#XA0;&#XA0;Explicit overriding in class definitions</a>
</li><li class="li-toc"><a href="extn.html#sec236">7.18&#XA0;&#XA0;Overriding in open statements</a>
</li><li class="li-toc"><a href="extn.html#sec237">7.19&#XA0;&#XA0;Generalized algebraic datatypes</a>
</li><li class="li-toc"><a href="extn.html#sec239">7.20&#XA0;&#XA0;Syntax for Bigarray access</a>
</li><li class="li-toc"><a href="extn.html#sec240">7.21&#XA0;&#XA0;Attributes</a>
<ul class="ftoc4"><li class="li-toc">
<a href="extn.html#sec241">7.21.1&#XA0;&#XA0;Built-in attributes</a>
</li></ul>
</li><li class="li-toc"><a href="extn.html#sec242">7.22&#XA0;&#XA0;Extension nodes</a>
</li><li class="li-toc"><a href="extn.html#sec243">7.23&#XA0;&#XA0;Quoted strings</a>
</li><li class="li-toc"><a href="extn.html#sec244">7.24&#XA0;&#XA0;Exception cases in pattern matching</a>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="index.html#sec245">Part&#XA0;III&#XA0;&#XA0;The OCaml tools</a>
<ul class="ftoc2"><li class="li-toc">
<a href="comp.html#sec246">Chapter&#XA0;8&#XA0;&#XA0;Batch compilation (ocamlc)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="comp.html#sec247">8.1&#XA0;&#XA0;Overview of the compiler</a>
</li><li class="li-toc"><a href="comp.html#sec248">8.2&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="comp.html#sec249">8.3&#XA0;&#XA0;Modules and the file system</a>
</li><li class="li-toc"><a href="comp.html#sec250">8.4&#XA0;&#XA0;Common errors</a>
</li></ul>
</li><li class="li-toc"><a href="toplevel.html#sec251">Chapter&#XA0;9&#XA0;&#XA0;The toplevel system (ocaml)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="toplevel.html#sec252">9.1&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="toplevel.html#sec253">9.2&#XA0;&#XA0;Toplevel directives</a>
</li><li class="li-toc"><a href="toplevel.html#sec254">9.3&#XA0;&#XA0;The toplevel and the module system</a>
</li><li class="li-toc"><a href="toplevel.html#sec255">9.4&#XA0;&#XA0;Common errors</a>
</li><li class="li-toc"><a href="toplevel.html#sec256">9.5&#XA0;&#XA0;Building custom toplevel systems: <span class="c007">ocamlmktop</span></a>
</li><li class="li-toc"><a href="toplevel.html#sec257">9.6&#XA0;&#XA0;Options</a>
</li></ul>
</li><li class="li-toc"><a href="runtime.html#sec258">Chapter&#XA0;10&#XA0;&#XA0;The runtime system (ocamlrun)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="runtime.html#sec259">10.1&#XA0;&#XA0;Overview</a>
</li><li class="li-toc"><a href="runtime.html#sec260">10.2&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="runtime.html#sec261">10.3&#XA0;&#XA0;Dynamic loading of shared libraries</a>
</li><li class="li-toc"><a href="runtime.html#sec262">10.4&#XA0;&#XA0;Common errors</a>
</li></ul>
</li><li class="li-toc"><a href="native.html#sec263">Chapter&#XA0;11&#XA0;&#XA0;Native-code compilation (ocamlopt)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="native.html#sec264">11.1&#XA0;&#XA0;Overview of the compiler</a>
</li><li class="li-toc"><a href="native.html#sec265">11.2&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="native.html#sec269">11.3&#XA0;&#XA0;Common errors</a>
</li><li class="li-toc"><a href="native.html#sec270">11.4&#XA0;&#XA0;Running executables produced by ocamlopt</a>
</li><li class="li-toc"><a href="native.html#sec271">11.5&#XA0;&#XA0;Compatibility with the bytecode compiler</a>
</li></ul>
</li><li class="li-toc"><a href="lexyacc.html#sec272">Chapter&#XA0;12&#XA0;&#XA0;Lexer and parser generators (ocamllex, ocamlyacc)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="lexyacc.html#sec273">12.1&#XA0;&#XA0;Overview of <span class="c007">ocamllex</span></a>
<ul class="ftoc4"><li class="li-toc">
<a href="lexyacc.html#sec274">12.1.1&#XA0;&#XA0;Options</a>
</li></ul>
</li><li class="li-toc"><a href="lexyacc.html#sec275">12.2&#XA0;&#XA0;Syntax of lexer definitions</a>
<ul class="ftoc4"><li class="li-toc">
<a href="lexyacc.html#sec276">12.2.1&#XA0;&#XA0;Header and trailer</a>
</li><li class="li-toc"><a href="lexyacc.html#sec277">12.2.2&#XA0;&#XA0;Naming regular expressions</a>
</li><li class="li-toc"><a href="lexyacc.html#sec278">12.2.3&#XA0;&#XA0;Entry points</a>
</li><li class="li-toc"><a href="lexyacc.html#sec279">12.2.4&#XA0;&#XA0;Regular expressions</a>
</li><li class="li-toc"><a href="lexyacc.html#sec280">12.2.5&#XA0;&#XA0;Actions</a>
</li><li class="li-toc"><a href="lexyacc.html#sec281">12.2.6&#XA0;&#XA0;Variables in regular expressions</a>
</li><li class="li-toc"><a href="lexyacc.html#sec282">12.2.7&#XA0;&#XA0;Refill handlers</a>
</li><li class="li-toc"><a href="lexyacc.html#sec283">12.2.8&#XA0;&#XA0;Reserved identifiers</a>
</li></ul>
</li><li class="li-toc"><a href="lexyacc.html#sec284">12.3&#XA0;&#XA0;Overview of <span class="c007">ocamlyacc</span></a>
</li><li class="li-toc"><a href="lexyacc.html#sec285">12.4&#XA0;&#XA0;Syntax of grammar definitions</a>
<ul class="ftoc4"><li class="li-toc">
<a href="lexyacc.html#sec286">12.4.1&#XA0;&#XA0;Header and trailer</a>
</li><li class="li-toc"><a href="lexyacc.html#sec287">12.4.2&#XA0;&#XA0;Declarations</a>
</li><li class="li-toc"><a href="lexyacc.html#sec288">12.4.3&#XA0;&#XA0;Rules</a>
</li><li class="li-toc"><a href="lexyacc.html#sec289">12.4.4&#XA0;&#XA0;Error handling</a>
</li></ul>
</li><li class="li-toc"><a href="lexyacc.html#sec290">12.5&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="lexyacc.html#sec291">12.6&#XA0;&#XA0;A complete example</a>
</li><li class="li-toc"><a href="lexyacc.html#sec292">12.7&#XA0;&#XA0;Common errors</a>
</li></ul>
</li><li class="li-toc"><a href="depend.html#sec293">Chapter&#XA0;13&#XA0;&#XA0;Dependency generator (ocamldep)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="depend.html#sec294">13.1&#XA0;&#XA0;Options</a>
</li><li class="li-toc"><a href="depend.html#sec295">13.2&#XA0;&#XA0;A typical Makefile</a>
</li></ul>
</li><li class="li-toc"><a href="browser.html#sec296">Chapter&#XA0;14&#XA0;&#XA0;The browser/editor (ocamlbrowser)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="browser.html#sec297">14.1&#XA0;&#XA0;Invocation</a>
</li><li class="li-toc"><a href="browser.html#sec298">14.2&#XA0;&#XA0;Viewer</a>
</li><li class="li-toc"><a href="browser.html#sec299">14.3&#XA0;&#XA0;Module browsing</a>
</li><li class="li-toc"><a href="browser.html#sec300">14.4&#XA0;&#XA0;File editor</a>
</li><li class="li-toc"><a href="browser.html#sec301">14.5&#XA0;&#XA0;Shell</a>
</li></ul>
</li><li class="li-toc"><a href="ocamldoc.html#sec302">Chapter&#XA0;15&#XA0;&#XA0;The documentation generator (ocamldoc)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="ocamldoc.html#sec303">15.1&#XA0;&#XA0;Usage</a>
<ul class="ftoc4"><li class="li-toc">
<a href="ocamldoc.html#sec304">15.1.1&#XA0;&#XA0;Invocation</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec313">15.1.2&#XA0;&#XA0;Merging of module information</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec314">15.1.3&#XA0;&#XA0;Coding rules</a>
</li></ul>
</li><li class="li-toc"><a href="ocamldoc.html#sec315">15.2&#XA0;&#XA0;Syntax of documentation comments</a>
<ul class="ftoc4"><li class="li-toc">
<a href="ocamldoc.html#sec316">15.2.1&#XA0;&#XA0;Placement of documentation comments</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec319">15.2.2&#XA0;&#XA0;The Stop special comment</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec320">15.2.3&#XA0;&#XA0;Syntax of documentation comments</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec321">15.2.4&#XA0;&#XA0;Text formatting</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec327">15.2.5&#XA0;&#XA0;Documentation tags (@-tags)</a>
</li></ul>
</li><li class="li-toc"><a href="ocamldoc.html#sec330">15.3&#XA0;&#XA0;Custom generators</a>
<ul class="ftoc4"><li class="li-toc">
<a href="ocamldoc.html#sec331">15.3.1&#XA0;&#XA0;The generator modules</a>
</li><li class="li-toc"><a href="ocamldoc.html#sec332">15.3.2&#XA0;&#XA0;Handling custom tags</a>
</li></ul>
</li><li class="li-toc"><a href="ocamldoc.html#sec335">15.4&#XA0;&#XA0;Adding command line options</a>
<ul class="ftoc4"><li class="li-toc">
<a href="ocamldoc.html#sec336">15.4.1&#XA0;&#XA0;Compilation and usage</a>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="debugger.html#sec339">Chapter&#XA0;16&#XA0;&#XA0;The debugger (ocamldebug)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="debugger.html#sec340">16.1&#XA0;&#XA0;Compiling for debugging</a>
</li><li class="li-toc"><a href="debugger.html#sec341">16.2&#XA0;&#XA0;Invocation</a>
<ul class="ftoc4"><li class="li-toc">
<a href="debugger.html#sec342">16.2.1&#XA0;&#XA0;Starting the debugger</a>
</li><li class="li-toc"><a href="debugger.html#sec343">16.2.2&#XA0;&#XA0;Exiting the debugger</a>
</li></ul>
</li><li class="li-toc"><a href="debugger.html#sec344">16.3&#XA0;&#XA0;Commands</a>
<ul class="ftoc4"><li class="li-toc">
<a href="debugger.html#sec345">16.3.1&#XA0;&#XA0;Getting help</a>
</li><li class="li-toc"><a href="debugger.html#sec346">16.3.2&#XA0;&#XA0;Accessing the debugger state</a>
</li></ul>
</li><li class="li-toc"><a href="debugger.html#sec347">16.4&#XA0;&#XA0;Executing a program</a>
<ul class="ftoc4"><li class="li-toc">
<a href="debugger.html#sec348">16.4.1&#XA0;&#XA0;Events</a>
</li><li class="li-toc"><a href="debugger.html#sec349">16.4.2&#XA0;&#XA0;Starting the debugged program</a>
</li><li class="li-toc"><a href="debugger.html#sec350">16.4.3&#XA0;&#XA0;Running the program</a>
</li><li class="li-toc"><a href="debugger.html#sec351">16.4.4&#XA0;&#XA0;Time travel</a>
</li><li class="li-toc"><a href="debugger.html#sec352">16.4.5&#XA0;&#XA0;Killing the program</a>
</li></ul>
</li><li class="li-toc"><a href="debugger.html#sec353">16.5&#XA0;&#XA0;Breakpoints</a>
</li><li class="li-toc"><a href="debugger.html#sec354">16.6&#XA0;&#XA0;The call stack</a>
</li><li class="li-toc"><a href="debugger.html#sec355">16.7&#XA0;&#XA0;Examining variable values</a>
</li><li class="li-toc"><a href="debugger.html#sec356">16.8&#XA0;&#XA0;Controlling the debugger</a>
<ul class="ftoc4"><li class="li-toc">
<a href="debugger.html#sec357">16.8.1&#XA0;&#XA0;Setting the program name and arguments</a>
</li><li class="li-toc"><a href="debugger.html#sec358">16.8.2&#XA0;&#XA0;How programs are loaded</a>
</li><li class="li-toc"><a href="debugger.html#sec359">16.8.3&#XA0;&#XA0;Search path for files</a>
</li><li class="li-toc"><a href="debugger.html#sec360">16.8.4&#XA0;&#XA0;Working directory</a>
</li><li class="li-toc"><a href="debugger.html#sec361">16.8.5&#XA0;&#XA0;Turning reverse execution on and off</a>
</li><li class="li-toc"><a href="debugger.html#sec362">16.8.6&#XA0;&#XA0;Communication between the debugger and the program</a>
</li><li class="li-toc"><a href="debugger.html#sec363">16.8.7&#XA0;&#XA0;Fine-tuning the debugger</a>
</li><li class="li-toc"><a href="debugger.html#sec364">16.8.8&#XA0;&#XA0;User-defined printers</a>
</li></ul>
</li><li class="li-toc"><a href="debugger.html#sec365">16.9&#XA0;&#XA0;Miscellaneous commands</a>
</li><li class="li-toc"><a href="debugger.html#sec366">16.10&#XA0;&#XA0;Running the debugger under Emacs</a>
</li></ul>
</li><li class="li-toc"><a href="profil.html#sec367">Chapter&#XA0;17&#XA0;&#XA0;Profiling (ocamlprof)</a>
<ul class="ftoc3"><li class="li-toc">
<a href="profil.html#sec368">17.1&#XA0;&#XA0;Compiling for profiling</a>
</li><li class="li-toc"><a href="profil.html#sec372">17.2&#XA0;&#XA0;Profiling an execution</a>
</li><li class="li-toc"><a href="profil.html#sec373">17.3&#XA0;&#XA0;Printing profiling information</a>
</li><li class="li-toc"><a href="profil.html#sec374">17.4&#XA0;&#XA0;Time profiling</a>
</li></ul>
</li><li class="li-toc"><a href="ocamlbuild.html#sec376">Chapter&#XA0;18&#XA0;&#XA0;The ocamlbuild compilation manager</a>
<ul class="ftoc3"><li class="li-toc">
<a href="ocamlbuild.html#sec377">18.1&#XA0;&#XA0;Features of <span class="c007">ocamlbuild</span></a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec378">18.2&#XA0;&#XA0;Limitations</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec379">18.3&#XA0;&#XA0;Using <span class="c007">ocamlbuild</span></a>
<ul class="ftoc4"><li class="li-toc">
<a href="ocamlbuild.html#sec380">18.3.1&#XA0;&#XA0;Hygiene &amp; where is my code ?</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec381">18.3.2&#XA0;&#XA0;Hello, world !</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec382">18.3.3&#XA0;&#XA0;Executing my code</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec383">18.3.4&#XA0;&#XA0;The log file, verbosity and debugging</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec384">18.3.5&#XA0;&#XA0;Cleaning</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec385">18.3.6&#XA0;&#XA0;Where and how to run <span class="c007">ocamlbuild</span>?</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec386">18.3.7&#XA0;&#XA0;Dependencies</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec387">18.3.8&#XA0;&#XA0;Native and byte-code</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec388">18.3.9&#XA0;&#XA0;Compile flags</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec389">18.3.10&#XA0;&#XA0;Link flags</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec390">18.3.11&#XA0;&#XA0;Linking with external libraries</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec391">18.3.12&#XA0;&#XA0;The <span class="c007">_tags</span> files</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec393">18.3.13&#XA0;&#XA0;Glob patterns and expressions</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec394">18.3.14&#XA0;&#XA0;Subdirectories</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec396">18.3.15&#XA0;&#XA0;Grouping targets with <span class="c007">.itarget</span></a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec397">18.3.16&#XA0;&#XA0;Packing subdirectories into modules</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec398">18.3.17&#XA0;&#XA0;Making an OCaml library</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec399">18.3.18&#XA0;&#XA0;Making an OCaml toplevel</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec400">18.3.19&#XA0;&#XA0;Preprocessor options and tags</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec401">18.3.20&#XA0;&#XA0;Debugging byte code and profiling native code</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec402">18.3.21&#XA0;&#XA0;Generating documentation using <span class="c007">ocamldoc</span></a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec403">18.3.22&#XA0;&#XA0;The display line</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec404">18.3.23&#XA0;&#XA0;<span class="c007">ocamllex</span>, <span class="c007">ocamlyacc</span> and <span class="c007">menhir</span></a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec405">18.3.24&#XA0;&#XA0;Changing the compilers or tools</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec406">18.3.25&#XA0;&#XA0;Interaction with version control systems</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec407">18.3.26&#XA0;&#XA0;A shell script for driving it all?</a>
</li></ul>
</li><li class="li-toc"><a href="ocamlbuild.html#sec408">18.4&#XA0;&#XA0;Appendix: Motivations</a>
</li><li class="li-toc"><a href="ocamlbuild.html#sec409">18.5&#XA0;&#XA0;Appendix: Summary of default rules</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec410">Chapter&#XA0;19&#XA0;&#XA0;Interfacing C with OCaml</a>
<ul class="ftoc3"><li class="li-toc">
<a href="intfc.html#sec411">19.1&#XA0;&#XA0;Overview and compilation information</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec412">19.1.1&#XA0;&#XA0;Declaring primitives</a>
</li><li class="li-toc"><a href="intfc.html#sec413">19.1.2&#XA0;&#XA0;Implementing primitives</a>
</li><li class="li-toc"><a href="intfc.html#sec414">19.1.3&#XA0;&#XA0;Statically linking C code with OCaml code</a>
</li><li class="li-toc"><a href="intfc.html#sec415">19.1.4&#XA0;&#XA0;Dynamically linking C code with OCaml code</a>
</li><li class="li-toc"><a href="intfc.html#sec416">19.1.5&#XA0;&#XA0;Choosing between static linking and dynamic linking</a>
</li><li class="li-toc"><a href="intfc.html#sec417">19.1.6&#XA0;&#XA0;Building standalone custom runtime systems</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec418">19.2&#XA0;&#XA0;The <span class="c007">value</span> type</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec419">19.2.1&#XA0;&#XA0;Integer values</a>
</li><li class="li-toc"><a href="intfc.html#sec420">19.2.2&#XA0;&#XA0;Blocks</a>
</li><li class="li-toc"><a href="intfc.html#sec421">19.2.3&#XA0;&#XA0;Pointers outside the heap</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec422">19.3&#XA0;&#XA0;Representation of OCaml data types</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec423">19.3.1&#XA0;&#XA0;Atomic types</a>
</li><li class="li-toc"><a href="intfc.html#sec424">19.3.2&#XA0;&#XA0;Tuples and records</a>
</li><li class="li-toc"><a href="intfc.html#sec425">19.3.3&#XA0;&#XA0;Arrays</a>
</li><li class="li-toc"><a href="intfc.html#sec426">19.3.4&#XA0;&#XA0;Concrete data types</a>
</li><li class="li-toc"><a href="intfc.html#sec427">19.3.5&#XA0;&#XA0;Objects</a>
</li><li class="li-toc"><a href="intfc.html#sec428">19.3.6&#XA0;&#XA0;Polymorphic variants</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec429">19.4&#XA0;&#XA0;Operations on values</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec430">19.4.1&#XA0;&#XA0;Kind tests</a>
</li><li class="li-toc"><a href="intfc.html#sec431">19.4.2&#XA0;&#XA0;Operations on integers</a>
</li><li class="li-toc"><a href="intfc.html#sec432">19.4.3&#XA0;&#XA0;Accessing blocks</a>
</li><li class="li-toc"><a href="intfc.html#sec433">19.4.4&#XA0;&#XA0;Allocating blocks</a>
</li><li class="li-toc"><a href="intfc.html#sec436">19.4.5&#XA0;&#XA0;Raising exceptions</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec437">19.5&#XA0;&#XA0;Living in harmony with the garbage collector</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec438">19.5.1&#XA0;&#XA0;Simple interface</a>
</li><li class="li-toc"><a href="intfc.html#sec443">19.5.2&#XA0;&#XA0;Low-level interface</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec444">19.6&#XA0;&#XA0;A complete example</a>
</li><li class="li-toc"><a href="intfc.html#sec445">19.7&#XA0;&#XA0;Advanced topic: callbacks from C to OCaml</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec446">19.7.1&#XA0;&#XA0;Applying OCaml closures from C</a>
</li><li class="li-toc"><a href="intfc.html#sec448">19.7.2&#XA0;&#XA0;Obtaining or registering OCaml closures for use in C functions</a>
</li><li class="li-toc"><a href="intfc.html#sec449">19.7.3&#XA0;&#XA0;Registering OCaml exceptions for use in C functions</a>
</li><li class="li-toc"><a href="intfc.html#sec450">19.7.4&#XA0;&#XA0;Main program in C</a>
</li><li class="li-toc"><a href="intfc.html#sec451">19.7.5&#XA0;&#XA0;Embedding the OCaml code in the C code</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec454">19.8&#XA0;&#XA0;Advanced example with callbacks</a>
</li><li class="li-toc"><a href="intfc.html#sec455">19.9&#XA0;&#XA0;Advanced topic: custom blocks</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec456">19.9.1&#XA0;&#XA0;The <span class="c007">struct custom_operations</span></a>
</li><li class="li-toc"><a href="intfc.html#sec457">19.9.2&#XA0;&#XA0;Allocating custom blocks</a>
</li><li class="li-toc"><a href="intfc.html#sec458">19.9.3&#XA0;&#XA0;Accessing custom blocks</a>
</li><li class="li-toc"><a href="intfc.html#sec459">19.9.4&#XA0;&#XA0;Writing custom serialization and deserialization functions</a>
</li><li class="li-toc"><a href="intfc.html#sec460">19.9.5&#XA0;&#XA0;Choosing identifiers</a>
</li><li class="li-toc"><a href="intfc.html#sec461">19.9.6&#XA0;&#XA0;Finalized blocks</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec462">19.10&#XA0;&#XA0;Advanced topic: multithreading</a>
<ul class="ftoc4"><li class="li-toc">
<a href="intfc.html#sec463">19.10.1&#XA0;&#XA0;Registering threads created from C</a>
</li><li class="li-toc"><a href="intfc.html#sec464">19.10.2&#XA0;&#XA0;Parallel execution of long-running C code</a>
</li></ul>
</li><li class="li-toc"><a href="intfc.html#sec465">19.11&#XA0;&#XA0;Building mixed C/OCaml libraries: <span class="c007">ocamlmklib</span></a>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="index.html#sec467">Part&#XA0;IV&#XA0;&#XA0;The OCaml library</a>
<ul class="ftoc2"><li class="li-toc">
<a href="core.html#sec468">Chapter&#XA0;20&#XA0;&#XA0;The core library</a>
<ul class="ftoc3"><li class="li-toc">
<a href="core.html#sec470">20.1&#XA0;&#XA0;Built-in types and predefined exceptions</a>
</li><li class="li-toc"><a href="core.html#sec473">20.2&#XA0;&#XA0;Module <span class="c007">Pervasives</span>: the initially opened module</a>
</li></ul>
</li><li class="li-toc"><a href="stdlib.html#sec474">Chapter&#XA0;21&#XA0;&#XA0;The standard library</a>
</li><li class="li-toc"><a href="libunix.html#sec476">Chapter&#XA0;22&#XA0;&#XA0;The unix library: Unix system calls</a>
</li><li class="li-toc"><a href="libnum.html#sec477">Chapter&#XA0;23&#XA0;&#XA0;The num library: arbitrary-precision rational arithmetic</a>
</li><li class="li-toc"><a href="libstr.html#sec478">Chapter&#XA0;24&#XA0;&#XA0;The str library: regular expressions and string processing</a>
</li><li class="li-toc"><a href="libthreads.html#sec479">Chapter&#XA0;25&#XA0;&#XA0;The threads library</a>
</li><li class="li-toc"><a href="libgraph.html#sec480">Chapter&#XA0;26&#XA0;&#XA0;The graphics library</a>
</li><li class="li-toc"><a href="libdynlink.html#sec481">Chapter&#XA0;27&#XA0;&#XA0;The dynlink library: dynamic loading and linking of object files</a>
</li><li class="li-toc"><a href="libbigarray.html#sec482">Chapter&#XA0;28&#XA0;&#XA0;The bigarray library</a>
<ul class="ftoc3"><li class="li-toc">
<a href="libbigarray.html#sec483">28.1&#XA0;&#XA0;Module <span class="c007">Bigarray</span>: large, multi-dimensional, numerical arrays</a>
</li><li class="li-toc"><a href="libbigarray.html#sec484">28.2&#XA0;&#XA0;Big arrays in the OCaml-C interface</a>
<ul class="ftoc4"><li class="li-toc">
<a href="libbigarray.html#sec485">28.2.1&#XA0;&#XA0;Include file</a>
</li><li class="li-toc"><a href="libbigarray.html#sec486">28.2.2&#XA0;&#XA0;Accessing an OCaml bigarray from C or Fortran</a>
</li><li class="li-toc"><a href="libbigarray.html#sec487">28.2.3&#XA0;&#XA0;Wrapping a C or Fortran array as an OCaml big array</a>
</li></ul>
</li></ul>
</li></ul>
</li><li class="li-toc"><a href="index.html#sec488">Part&#XA0;V&#XA0;&#XA0;Appendix</a>
</li></ul><hr>
<a href="index.html"><img src="contents_motif.gif" alt="Up"></a>
<a href="foreword.html"><img src="next_motif.gif" alt="Next"></a>
</body>
</html>