\@addtocsec{htoc}{1}{-2}{\@print{Part&nbsp;I}\quad{}An introduction to Objective Caml}
\newlabel{p:tutorials}{{I}{X}}
\@addtocsec{htoc}{2}{-1}{\@print{Chapter&nbsp;1}\quad{}The core language}
\newlabel{c:core-xamples}{{1}{X}}
\@addtocsec{htoc}{3}{0}{\@print{1.1}\quad{}Basics}
\@addtocsec{htoc}{4}{0}{\@print{1.2}\quad{}Data types}
\@addtocsec{htoc}{5}{0}{\@print{1.3}\quad{}Functions as values}
\@addtocsec{htoc}{6}{0}{\@print{1.4}\quad{}Records and variants}
\newlabel{s:tut-recvariants}{{1.4}{X}}
\@addtocsec{htoc}{7}{0}{\@print{1.5}\quad{}Imperative features}
\@addtocsec{htoc}{8}{0}{\@print{1.6}\quad{}Exceptions}
\@addtocsec{htoc}{9}{0}{\@print{1.7}\quad{}Symbolic processing of expressions}
\@addtocsec{htoc}{10}{0}{\@print{1.8}\quad{}Pretty-printing and parsing}
\@addtocsec{htoc}{11}{0}{\@print{1.9}\quad{}Standalone Caml programs}
\@addtocsec{htoc}{12}{-1}{\@print{Chapter&nbsp;2}\quad{}The module system}
\newlabel{c:moduleexamples}{{2}{X}}
\@addtocsec{htoc}{13}{0}{\@print{2.1}\quad{}Structures}
\@addtocsec{htoc}{14}{0}{\@print{2.2}\quad{}Signatures}
\@addtocsec{htoc}{15}{0}{\@print{2.3}\quad{}Functors}
\@addtocsec{htoc}{16}{0}{\@print{2.4}\quad{}Functors and type abstraction}
\@addtocsec{htoc}{17}{0}{\@print{2.5}\quad{}Modules and separate compilation}
\@addtocsec{htoc}{18}{-1}{\@print{Chapter&nbsp;3}\quad{}Objects in Caml}
\newlabel{c:objectexamples}{{3}{X}}
\@addtocsec{htoc}{19}{0}{\@print{3.1}\quad{}Classes and objects}
\newlabel{ss:classes-and-objects}{{3.1}{X}}
\@addtocsec{htoc}{20}{0}{\@print{3.2}\quad{}Reference to self}
\newlabel{ss:reference-to-self}{{3.2}{X}}
\@addtocsec{htoc}{21}{0}{\@print{3.3}\quad{}Initializers}
\newlabel{ss:initializers}{{3.3}{X}}
\@addtocsec{htoc}{22}{0}{\@print{3.4}\quad{}Virtual methods}
\newlabel{ss:virtual-methods}{{3.4}{X}}
\@addtocsec{htoc}{23}{0}{\@print{3.5}\quad{}Private methods}
\newlabel{ss:private-methods}{{3.5}{X}}
\@addtocsec{htoc}{24}{0}{\@print{3.6}\quad{}Class interfaces}
\newlabel{ss:class-interfaces}{{3.6}{X}}
\@addtocsec{htoc}{25}{0}{\@print{3.7}\quad{}Inheritance}
\newlabel{ss:inheritance}{{3.7}{X}}
\@addtocsec{htoc}{26}{0}{\@print{3.8}\quad{}Multiple inheritance}
\newlabel{ss:multiple-inheritance}{{3.8}{X}}
\@addtocsec{htoc}{27}{0}{\@print{3.9}\quad{}Parameterized classes}
\newlabel{ss:parameterized-classes}{{3.9}{X}}
\@addtocsec{htoc}{28}{0}{\@print{3.10}\quad{}Polymorphic methods}
\newlabel{ss:polymorphic-methods}{{3.10}{X}}
\@addtocsec{htoc}{29}{0}{\@print{3.11}\quad{}Using coercions}
\newlabel{ss:using-coercions}{{3.11}{X}}
\@addtocsec{htoc}{30}{0}{\@print{3.12}\quad{}Functional objects}
\newlabel{ss:functional-objects}{{3.12}{X}}
\@addtocsec{htoc}{31}{0}{\@print{3.13}\quad{}Cloning objects}
\newlabel{ss:cloning-objects}{{3.13}{X}}
\@addtocsec{htoc}{32}{0}{\@print{3.14}\quad{}Recursive classes}
\newlabel{ss:recursive-classes}{{3.14}{X}}
\@addtocsec{htoc}{33}{0}{\@print{3.15}\quad{}Binary methods}
\newlabel{ss:binary-methods}{{3.15}{X}}
\@addtocsec{htoc}{34}{0}{\@print{3.16}\quad{}Friends}
\newlabel{ss:friends}{{3.16}{X}}
\@addtocsec{htoc}{35}{-1}{\@print{Chapter&nbsp;4}\quad{}Labels and variants}
\newlabel{c:labl-examples}{{4}{X}}
\@addtocsec{htoc}{36}{0}{\@print{4.1}\quad{}Labels}
\@addtocsec{htoc}{37}{1}{\@print{4.1.1}\quad{}Optional arguments}
\@addtocsec{htoc}{38}{1}{\@print{4.1.2}\quad{}Labels and type inference}
\newlabel{ss:label-inference}{{4.1.2}{X}}
\@addtocsec{htoc}{39}{1}{\@print{4.1.3}\quad{}Suggestions for labeling}
\@addtocsec{htoc}{40}{0}{\@print{4.2}\quad{}Polymorphic variants}
\@addtocsec{htoc}{41}{1}{\@print{4.2.1}\quad{}Weaknesses of polymorphic variants}
\@addtocsec{htoc}{42}{-1}{\@print{Chapter&nbsp;5}\quad{}Advanced examples with classes and modules}
\@addtocsec{htoc}{43}{0}{\@print{5.1}\quad{}Extended example: bank accounts}
\newlabel{ss:bank-accounts}{{5.1}{X}}
\@addtocsec{htoc}{44}{0}{\@print{5.2}\quad{}Simple modules as classes}
\newlabel{ss:modules-as-classes}{{5.2}{X}}
\@addtocsec{htoc}{45}{1}{\@print{5.2.1}\quad{}Strings}
\newlabel{module:string}{{5.2.1}{X}}
\newlabel{module:stack}{{5.2.1}{X}}
\@addtocsec{htoc}{46}{1}{\@print{5.2.2}\quad{}Hashtbl}
\newlabel{module:hashtbl}{{5.2.2}{X}}
\@addtocsec{htoc}{47}{1}{\@print{5.2.3}\quad{}Sets}
\newlabel{module:set}{{5.2.3}{X}}
\@addtocsec{htoc}{48}{0}{\@print{5.3}\quad{}The subject/observer pattern}
\newlabel{ss:subject-observer}{{5.3}{X}}
\@addtocsec{htoc}{49}{-2}{\@print{Part&nbsp;II}\quad{}The Objective Caml language}
\newlabel{p:refman}{{II}{X}}
\@addtocsec{htoc}{50}{-1}{\@print{Chapter&nbsp;6}\quad{}The Objective Caml language}
\newlabel{c:refman}{{6}{X}}
\@addtocsec{htoc}{51}{0}{\@print{6.1}\quad{}Lexical conventions}
\newlabel{s:characterliteral}{{6.1}{X}}
\newlabel{s:stringliteral}{{6.1}{X}}
\@addtocsec{htoc}{52}{0}{\@print{6.2}\quad{}Values}
\@addtocsec{htoc}{53}{1}{\@print{6.2.1}\quad{}Base values}
\newlabel{s:string-val}{{6.2.1}{X}}
\@addtocsec{htoc}{54}{1}{\@print{6.2.2}\quad{}Tuples}
\@addtocsec{htoc}{55}{1}{\@print{6.2.3}\quad{}Records}
\@addtocsec{htoc}{56}{1}{\@print{6.2.4}\quad{}Arrays}
\@addtocsec{htoc}{57}{1}{\@print{6.2.5}\quad{}Variant values}
\@addtocsec{htoc}{58}{1}{\@print{6.2.6}\quad{}Polymorphic variants}
\@addtocsec{htoc}{59}{1}{\@print{6.2.7}\quad{}Functions}
\@addtocsec{htoc}{60}{1}{\@print{6.2.8}\quad{}Objects}
\@addtocsec{htoc}{61}{0}{\@print{6.3}\quad{}Names}
\newlabel{s:names}{{6.3}{X}}
\@addtocsec{htoc}{62}{0}{\@print{6.4}\quad{}Type expressions}
\newlabel{s:sharp-types}{{6.4}{X}}
\@addtocsec{htoc}{63}{0}{\@print{6.5}\quad{}Constants}
\@addtocsec{htoc}{64}{0}{\@print{6.6}\quad{}Patterns}
\@addtocsec{htoc}{65}{0}{\@print{6.7}\quad{}Expressions}
\newlabel{s:value-expr}{{6.7}{X}}
\@addtocsec{htoc}{66}{1}{\@print{6.7.1}\quad{}Basic expressions}
\newlabel{expr:var}{{6.7.1}{X}}
\newlabel{s:localdef}{{6.7.1}{X}}
\@addtocsec{htoc}{67}{1}{\@print{6.7.2}\quad{}Control structures}
\@addtocsec{htoc}{68}{1}{\@print{6.7.3}\quad{}Operations on data structures}
\@addtocsec{htoc}{69}{1}{\@print{6.7.4}\quad{}Operators}
\@addtocsec{htoc}{70}{1}{\@print{6.7.5}\quad{}Objects}
\newlabel{s:objects}{{6.7.5}{X}}
\@addtocsec{htoc}{71}{0}{\@print{6.8}\quad{}Type and exception definitions}
\@addtocsec{htoc}{72}{1}{\@print{6.8.1}\quad{}Type definitions}
\newlabel{s:type-defs}{{6.8.1}{X}}
\@addtocsec{htoc}{73}{1}{\@print{6.8.2}\quad{}Exception definitions}
\newlabel{s:excdef}{{6.8.2}{X}}
\@addtocsec{htoc}{74}{0}{\@print{6.9}\quad{}Classes}
\@addtocsec{htoc}{75}{1}{\@print{6.9.1}\quad{}Class types}
\@addtocsec{htoc}{76}{1}{\@print{6.9.2}\quad{}Class expressions}
\@addtocsec{htoc}{77}{1}{\@print{6.9.3}\quad{}Class definitions}
\newlabel{s:classdef}{{6.9.3}{X}}
\@addtocsec{htoc}{78}{1}{\@print{6.9.4}\quad{}Class specification}
\newlabel{s:class-spec}{{6.9.4}{X}}
\@addtocsec{htoc}{79}{1}{\@print{6.9.5}\quad{}Class type definitions}
\newlabel{s:classtype}{{6.9.5}{X}}
\@addtocsec{htoc}{80}{0}{\@print{6.10}\quad{}Module types (module specifications)}
\@addtocsec{htoc}{81}{1}{\@print{6.10.1}\quad{}Simple module types}
\@addtocsec{htoc}{82}{1}{\@print{6.10.2}\quad{}Signatures}
\@addtocsec{htoc}{83}{1}{\@print{6.10.3}\quad{}Functor types}
\@addtocsec{htoc}{84}{1}{\@print{6.10.4}\quad{}The {\machine with} operator}
\@addtocsec{htoc}{85}{0}{\@print{6.11}\quad{}Module expressions (module implementations)}
\newlabel{s:module-expr}{{6.11}{X}}
\@addtocsec{htoc}{86}{1}{\@print{6.11.1}\quad{}Simple module expressions}
\@addtocsec{htoc}{87}{1}{\@print{6.11.2}\quad{}Structures}
\@addtocsec{htoc}{88}{1}{\@print{6.11.3}\quad{}Functors}
\@addtocsec{htoc}{89}{0}{\@print{6.12}\quad{}Compilation units}
\@addtocsec{htoc}{90}{-1}{\@print{Chapter&nbsp;7}\quad{}Language extensions}
\newlabel{c:extensions}{{7}{X}}
\@addtocsec{htoc}{91}{0}{\@print{7.1}\quad{}Streams and stream parsers}
\newlabel{s:streams}{{7.1}{X}}
\@addtocsec{htoc}{92}{0}{\@print{7.2}\quad{}Range patterns}
\@addtocsec{htoc}{93}{0}{\@print{7.3}\quad{}Assertion checking}
\@addtocsec{htoc}{94}{0}{\@print{7.4}\quad{}Deferred computations}
\@addtocsec{htoc}{95}{0}{\@print{7.5}\quad{}Local modules}
\@addtocsec{htoc}{96}{0}{\@print{7.6}\quad{}Grouping in integer and floating-point literals}
\@addtocsec{htoc}{97}{-2}{\@print{Part&nbsp;III}\quad{}The Objective Caml tools}
\newlabel{p:commands}{{III}{X}}
\@addtocsec{htoc}{98}{-1}{\@print{Chapter&nbsp;8}\quad{}Batch compilation (ocamlc)}
\newlabel{c:camlc}{{8}{X}}
\@addtocsec{htoc}{99}{0}{\@print{8.1}\quad{}Overview of the compiler}
\@addtocsec{htoc}{100}{0}{\@print{8.2}\quad{}Options}
\@addtocsec{htoc}{101}{0}{\@print{8.3}\quad{}Modules and the file system}
\@addtocsec{htoc}{102}{0}{\@print{8.4}\quad{}Common errors}
\newlabel{s:comp-errors}{{8.4}{X}}
\@addtocsec{htoc}{103}{-1}{\@print{Chapter&nbsp;9}\quad{}The toplevel system (ocaml)}
\newlabel{c:camllight}{{9}{X}}
\@addtocsec{htoc}{104}{0}{\@print{9.1}\quad{}Options}
\newlabel{s:toplevel-options}{{9.1}{X}}
\@addtocsec{htoc}{105}{0}{\@print{9.2}\quad{}Toplevel directives}
\newlabel{s:toplevel-directives}{{9.2}{X}}
\@addtocsec{htoc}{106}{0}{\@print{9.3}\quad{}The toplevel and the module system}
\newlabel{s:toplevel-modules}{{9.3}{X}}
\@addtocsec{htoc}{107}{0}{\@print{9.4}\quad{}Common errors}
\@addtocsec{htoc}{108}{0}{\@print{9.5}\quad{}Building custom toplevel systems: {\machine ocamlmktop}}
\@addtocsec{htoc}{109}{0}{\@print{9.6}\quad{}Options}
\@addtocsec{htoc}{110}{-1}{\@print{Chapter&nbsp;10}\quad{}The runtime system (ocamlrun)}
\newlabel{c:runtime}{{10}{X}}
\@addtocsec{htoc}{111}{0}{\@print{10.1}\quad{}Overview}
\@addtocsec{htoc}{112}{0}{\@print{10.2}\quad{}Options}
\newlabel{ocamlrun-options}{{10.2}{X}}
\@addtocsec{htoc}{113}{0}{\@print{10.3}\quad{}Dynamic loading of shared libraries}
\newlabel{s-ocamlrun-dllpath}{{10.3}{X}}
\@addtocsec{htoc}{114}{0}{\@print{10.4}\quad{}Common errors}
\@addtocsec{htoc}{115}{-1}{\@print{Chapter&nbsp;11}\quad{}Native-code compilation (ocamlopt)}
\newlabel{c:nativecomp}{{11}{X}}
\@addtocsec{htoc}{116}{0}{\@print{11.1}\quad{}Overview of the compiler}
\@addtocsec{htoc}{117}{0}{\@print{11.2}\quad{}Options}
\@addtocsec{htoc}{118}{0}{\@print{11.3}\quad{}Common errors}
\@addtocsec{htoc}{119}{0}{\@print{11.4}\quad{}Compatibility with the bytecode compiler}
\newlabel{s:compat-native-bytecode}{{11.4}{X}}
\@addtocsec{htoc}{120}{-1}{\@print{Chapter&nbsp;12}\quad{}Lexer and parser generators (ocamllex, ocamlyacc)}
\newlabel{c:ocamlyacc}{{12}{X}}
\@addtocsec{htoc}{121}{0}{\@print{12.1}\quad{}Overview of {\machine ocamllex}}
\@addtocsec{htoc}{122}{0}{\@print{12.2}\quad{}Syntax of lexer definitions}
\@addtocsec{htoc}{123}{1}{\@print{12.2.1}\quad{}Header and trailer}
\@addtocsec{htoc}{124}{1}{\@print{12.2.2}\quad{}Naming regular expressions}
\@addtocsec{htoc}{125}{1}{\@print{12.2.3}\quad{}Entry points}
\@addtocsec{htoc}{126}{1}{\@print{12.2.4}\quad{}Regular expressions}
\@addtocsec{htoc}{127}{1}{\@print{12.2.5}\quad{}Actions}
\@addtocsec{htoc}{128}{1}{\@print{12.2.6}\quad{}Reserved identifiers}
\@addtocsec{htoc}{129}{0}{\@print{12.3}\quad{}Overview of {\machine ocamlyacc}}
\@addtocsec{htoc}{130}{0}{\@print{12.4}\quad{}Syntax of grammar definitions}
\@addtocsec{htoc}{131}{1}{\@print{12.4.1}\quad{}Header and trailer}
\@addtocsec{htoc}{132}{1}{\@print{12.4.2}\quad{}Declarations}
\@addtocsec{htoc}{133}{1}{\@print{12.4.3}\quad{}Rules}
\@addtocsec{htoc}{134}{1}{\@print{12.4.4}\quad{}Error handling}
\@addtocsec{htoc}{135}{0}{\@print{12.5}\quad{}Options}
\@addtocsec{htoc}{136}{0}{\@print{12.6}\quad{}A complete example}
\@addtocsec{htoc}{137}{0}{\@print{12.7}\quad{}Common errors}
\@addtocsec{htoc}{138}{-1}{\@print{Chapter&nbsp;13}\quad{}Dependency generator (ocamldep)}
\newlabel{c:camldep}{{13}{X}}
\@addtocsec{htoc}{139}{0}{\@print{13.1}\quad{}Options}
\@addtocsec{htoc}{140}{0}{\@print{13.2}\quad{}A typical Makefile}
\@addtocsec{htoc}{141}{-1}{\@print{Chapter&nbsp;14}\quad{}The browser/editor (ocamlbrowser)}
\newlabel{c:browser}{{14}{X}}
\@addtocsec{htoc}{142}{0}{\@print{14.1}\quad{}Invocation}
\newlabel{s:browser-options}{{14.1}{X}}
\@addtocsec{htoc}{143}{0}{\@print{14.2}\quad{}Viewer}
\@addtocsec{htoc}{144}{0}{\@print{14.3}\quad{}Module browsing}
\@addtocsec{htoc}{145}{0}{\@print{14.4}\quad{}File editor}
\@addtocsec{htoc}{146}{0}{\@print{14.5}\quad{}Shell}
\@addtocsec{htoc}{147}{-1}{\@print{Chapter&nbsp;15}\quad{}The documentation generator (ocamldoc)}
\newlabel{c:ocamldoc}{{15}{X}}
\@addtocsec{htoc}{148}{0}{\@print{15.1}\quad{}Usage}
\newlabel{s:ocamldoc-usage}{{15.1}{X}}
\@addtocsec{htoc}{149}{1}{\@print{15.1.1}\quad{}Invocation}
\@addtocsec{htoc}{150}{1}{\@print{15.1.2}\quad{}Merging of module information}
\newlabel{s:ocamldoc-merge}{{15.1.2}{X}}
\@addtocsec{htoc}{151}{1}{\@print{15.1.3}\quad{}Coding rules}
\newlabel{s:ocamldoc-rules}{{15.1.3}{X}}
\@addtocsec{htoc}{152}{0}{\@print{15.2}\quad{}Syntax of documentation comments}
\newlabel{s:ocamldoc-comments}{{15.2}{X}}
\@addtocsec{htoc}{153}{1}{\@print{15.2.1}\quad{}Placement of documentation comments}
\@addtocsec{htoc}{154}{1}{\@print{15.2.2}\quad{}The Stop special comment}
\@addtocsec{htoc}{155}{1}{\@print{15.2.3}\quad{}Syntax of documentation comments}
\@addtocsec{htoc}{156}{1}{\@print{15.2.4}\quad{}Text formatting}
\@addtocsec{htoc}{157}{1}{\@print{15.2.5}\quad{}Documentation tags (@-tags)}
\newlabel{s:ocamldoc-tags}{{15.2.5}{X}}
\newlabel{s:ocamldoc-custom-tags}{{15.2.5}{X}}
\@addtocsec{htoc}{158}{0}{\@print{15.3}\quad{}Custom generators}
\newlabel{s:ocamldoc-custom-generators}{{15.3}{X}}
\@addtocsec{htoc}{159}{1}{\@print{15.3.1}\quad{}The generator class}
\@addtocsec{htoc}{160}{1}{\@print{15.3.2}\quad{}Handling custom tags}
\newlabel{s:ocamldoc-handling-custom-tags}{{15.3.2}{X}}
\@addtocsec{htoc}{161}{0}{\@print{15.4}\quad{}Adding command line options}
\@addtocsec{htoc}{162}{1}{\@print{15.4.1}\quad{}Compilation and usage}
\newlabel{s:ocamldoc-compilation-and-usage}{{15.4.1}{X}}
\@addtocsec{htoc}{163}{-1}{\@print{Chapter&nbsp;16}\quad{}The debugger (ocamldebug)}
\newlabel{c:debugger}{{16}{X}}
\@addtocsec{htoc}{164}{0}{\@print{16.1}\quad{}Compiling for debugging}
\@addtocsec{htoc}{165}{0}{\@print{16.2}\quad{}Invocation}
\@addtocsec{htoc}{166}{1}{\@print{16.2.1}\quad{}Starting the debugger}
\@addtocsec{htoc}{167}{1}{\@print{16.2.2}\quad{}Exiting the debugger}
\@addtocsec{htoc}{168}{0}{\@print{16.3}\quad{}Commands}
\newlabel{s:debugger-commands}{{16.3}{X}}
\@addtocsec{htoc}{169}{1}{\@print{16.3.1}\quad{}Getting help}
\@addtocsec{htoc}{170}{1}{\@print{16.3.2}\quad{}Accessing the debugger state}
\@addtocsec{htoc}{171}{0}{\@print{16.4}\quad{}Executing a program}
\@addtocsec{htoc}{172}{1}{\@print{16.4.1}\quad{}Events}
\@addtocsec{htoc}{173}{1}{\@print{16.4.2}\quad{}Starting the debugged program}
\@addtocsec{htoc}{174}{1}{\@print{16.4.3}\quad{}Running the program}
\@addtocsec{htoc}{175}{1}{\@print{16.4.4}\quad{}Time travel}
\@addtocsec{htoc}{176}{1}{\@print{16.4.5}\quad{}Killing the program}
\@addtocsec{htoc}{177}{0}{\@print{16.5}\quad{}Breakpoints}
\newlabel{s:breakpoints}{{16.5}{X}}
\@addtocsec{htoc}{178}{0}{\@print{16.6}\quad{}The call stack}
\@addtocsec{htoc}{179}{0}{\@print{16.7}\quad{}Examining variable values}
\@addtocsec{htoc}{180}{0}{\@print{16.8}\quad{}Controlling the debugger}
\@addtocsec{htoc}{181}{1}{\@print{16.8.1}\quad{}Setting the program name and arguments}
\@addtocsec{htoc}{182}{1}{\@print{16.8.2}\quad{}How programs are loaded}
\@addtocsec{htoc}{183}{1}{\@print{16.8.3}\quad{}Search path for files}
\@addtocsec{htoc}{184}{1}{\@print{16.8.4}\quad{}Working directory}
\@addtocsec{htoc}{185}{1}{\@print{16.8.5}\quad{}Turning reverse execution on and off}
\@addtocsec{htoc}{186}{1}{\@print{16.8.6}\quad{}Communication between the debugger and the program}
\newlabel{s:communication}{{16.8.6}{X}}
\@addtocsec{htoc}{187}{1}{\@print{16.8.7}\quad{}Fine-tuning the debugger}
\newlabel{s:fine-tuning}{{16.8.7}{X}}
\@addtocsec{htoc}{188}{1}{\@print{16.8.8}\quad{}User-defined printers}
\@addtocsec{htoc}{189}{0}{\@print{16.9}\quad{}Miscellaneous commands}
\@addtocsec{htoc}{190}{0}{\@print{16.10}\quad{}Running the debugger under Emacs}
\newlabel{s:inf-debugger}{{16.10}{X}}
\@addtocsec{htoc}{191}{-1}{\@print{Chapter&nbsp;17}\quad{}Profiling (ocamlprof)}
\newlabel{c:profiler}{{17}{X}}
\@addtocsec{htoc}{192}{0}{\@print{17.1}\quad{}Compiling for profiling}
\@addtocsec{htoc}{193}{0}{\@print{17.2}\quad{}Profiling an execution}
\@addtocsec{htoc}{194}{0}{\@print{17.3}\quad{}Printing profiling information}
\@addtocsec{htoc}{195}{0}{\@print{17.4}\quad{}Time profiling}
\@addtocsec{htoc}{196}{-1}{\@print{Chapter&nbsp;18}\quad{}Interfacing C with Objective Caml}
\newlabel{c:intf-c}{{18}{X}}
\@addtocsec{htoc}{197}{0}{\@print{18.1}\quad{}Overview and compilation information}
\@addtocsec{htoc}{198}{1}{\@print{18.1.1}\quad{}Declaring primitives}
\@addtocsec{htoc}{199}{1}{\@print{18.1.2}\quad{}Implementing primitives}
\@addtocsec{htoc}{200}{1}{\@print{18.1.3}\quad{}Statically linking C code with Caml code}
\newlabel{staticlink-c-code}{{18.1.3}{X}}
\@addtocsec{htoc}{201}{1}{\@print{18.1.4}\quad{}Dynamically linking C code with Caml code}
\newlabel{dynlink-c-code}{{18.1.4}{X}}
\@addtocsec{htoc}{202}{1}{\@print{18.1.5}\quad{}Choosing between static linking and dynamic linking}
\@addtocsec{htoc}{203}{1}{\@print{18.1.6}\quad{}Building standalone custom runtime systems}
\newlabel{s:custom-runtime}{{18.1.6}{X}}
\@addtocsec{htoc}{204}{0}{\@print{18.2}\quad{}The {\machine value} type}
\@addtocsec{htoc}{205}{1}{\@print{18.2.1}\quad{}Integer values}
\@addtocsec{htoc}{206}{1}{\@print{18.2.2}\quad{}Blocks}
\@addtocsec{htoc}{207}{1}{\@print{18.2.3}\quad{}Pointers outside the heap}
\@addtocsec{htoc}{208}{0}{\@print{18.3}\quad{}Representation of Caml data types}
\@addtocsec{htoc}{209}{1}{\@print{18.3.1}\quad{}Atomic types}
\@addtocsec{htoc}{210}{1}{\@print{18.3.2}\quad{}Tuples and records}
\@addtocsec{htoc}{211}{1}{\@print{18.3.3}\quad{}Arrays}
\@addtocsec{htoc}{212}{1}{\@print{18.3.4}\quad{}Concrete types}
\@addtocsec{htoc}{213}{1}{\@print{18.3.5}\quad{}Objects}
\@addtocsec{htoc}{214}{1}{\@print{18.3.6}\quad{}Variants}
\@addtocsec{htoc}{215}{0}{\@print{18.4}\quad{}Operations on values}
\@addtocsec{htoc}{216}{1}{\@print{18.4.1}\quad{}Kind tests}
\@addtocsec{htoc}{217}{1}{\@print{18.4.2}\quad{}Operations on integers}
\@addtocsec{htoc}{218}{1}{\@print{18.4.3}\quad{}Accessing blocks}
\@addtocsec{htoc}{219}{1}{\@print{18.4.4}\quad{}Allocating blocks}
\@addtocsec{htoc}{220}{1}{\@print{18.4.5}\quad{}Raising exceptions}
\newlabel{s:c-exceptions}{{18.4.5}{X}}
\@addtocsec{htoc}{221}{0}{\@print{18.5}\quad{}Living in harmony with the garbage collector}
\@addtocsec{htoc}{222}{1}{\@print{18.5.1}\quad{}Simple interface}
\@addtocsec{htoc}{223}{1}{\@print{18.5.2}\quad{}Low-level interface}
\@addtocsec{htoc}{224}{0}{\@print{18.6}\quad{}A complete example}
\@addtocsec{htoc}{225}{0}{\@print{18.7}\quad{}Advanced topic: callbacks from C to Caml}
\newlabel{s:callback}{{18.7}{X}}
\@addtocsec{htoc}{226}{1}{\@print{18.7.1}\quad{}Applying Caml closures from C}
\newlabel{s:callbacks}{{18.7.1}{X}}
\@addtocsec{htoc}{227}{1}{\@print{18.7.2}\quad{}Registering Caml closures for use in C functions}
\@addtocsec{htoc}{228}{1}{\@print{18.7.3}\quad{}Registering Caml exceptions for use in C functions}
\newlabel{s:register-exn}{{18.7.3}{X}}
\@addtocsec{htoc}{229}{1}{\@print{18.7.4}\quad{}Main program in C}
\newlabel{s:main-c}{{18.7.4}{X}}
\@addtocsec{htoc}{230}{1}{\@print{18.7.5}\quad{}Embedding the Caml code in the C code}
\newlabel{s:embedded-code}{{18.7.5}{X}}
\@addtocsec{htoc}{231}{0}{\@print{18.8}\quad{}Advanced example with callbacks}
\@addtocsec{htoc}{232}{0}{\@print{18.9}\quad{}Advanced topic: custom blocks}
\newlabel{s:custom}{{18.9}{X}}
\@addtocsec{htoc}{233}{1}{\@print{18.9.1}\quad{}The {\machine struct\ custom{\char95}operations}}
\@addtocsec{htoc}{234}{1}{\@print{18.9.2}\quad{}Allocating custom blocks}
\@addtocsec{htoc}{235}{1}{\@print{18.9.3}\quad{}Accessing custom blocks}
\@addtocsec{htoc}{236}{1}{\@print{18.9.4}\quad{}Writing custom serialization and deserialization functions}
\@addtocsec{htoc}{237}{1}{\@print{18.9.5}\quad{}Choosing identifiers}
\@addtocsec{htoc}{238}{1}{\@print{18.9.6}\quad{}Finalized blocks}
\@addtocsec{htoc}{239}{0}{\@print{18.10}\quad{}Building mixed C/Caml libraries: {\machine ocamlmklib}}
\newlabel{s-ocamlmklib}{{18.10}{X}}
\@addtocsec{htoc}{240}{-2}{\@print{Part&nbsp;IV}\quad{}The Objective Caml library}
\newlabel{p:library}{{IV}{X}}
\@addtocsec{htoc}{241}{-1}{\@print{Chapter&nbsp;19}\quad{}The core library}
\newlabel{c:corelib}{{19}{X}}
\@addtocsec{htoc}{242}{0}{\@print{19.1}\quad{}Built-in types and predefined exceptions}
\@addtocsec{htoc}{243}{-1}{\@print{Chapter&nbsp;20}\quad{}The standard library}
\newlabel{c:stdlib}{{20}{X}}
\newlabel{stdlib:top}{{20}{X}}
\@addtocsec{htoc}{244}{-1}{\@print{Chapter&nbsp;21}\quad{}The unix library: Unix system calls}
\@addtocsec{htoc}{245}{-1}{\@print{Chapter&nbsp;22}\quad{}The num library: arbitrary-precision rational arithmetic}
\@addtocsec{htoc}{246}{-1}{\@print{Chapter&nbsp;23}\quad{}The str library: regular expressions and string processing}
\@addtocsec{htoc}{247}{-1}{\@print{Chapter&nbsp;24}\quad{}The threads library}
\newlabel{c:threads}{{24}{X}}
\@addtocsec{htoc}{248}{-1}{\@print{Chapter&nbsp;25}\quad{}The graphics library}
\@addtocsec{htoc}{249}{-1}{\@print{Chapter&nbsp;26}\quad{}The dbm library: access to NDBM databases}
\@addtocsec{htoc}{250}{-1}{\@print{Chapter&nbsp;27}\quad{}The dynlink library: dynamic loading and linking of object files}
\@addtocsec{htoc}{251}{-1}{\@print{Chapter&nbsp;28}\quad{}The LablTk library: Tcl/Tk GUI interface}
\@addtocsec{htoc}{252}{-1}{\@print{Chapter&nbsp;29}\quad{}The bigarray library}
\@addtocsec{htoc}{253}{0}{\@print{29.1}\quad{}Module {\tt Bigarray}: large, multi-dimensional, numerical arrays}
\@addtocsec{htoc}{254}{0}{\@print{29.2}\quad{}Big arrays in the Caml-C interface}
\@addtocsec{htoc}{255}{1}{\@print{29.2.1}\quad{}Include file}
\@addtocsec{htoc}{256}{1}{\@print{29.2.2}\quad{}Accessing a Caml bigarray from C or Fortran}
\@addtocsec{htoc}{257}{1}{\@print{29.2.3}\quad{}Wrapping a C or Fortran array as a Caml big array}
\@addtocsec{htoc}{258}{-2}{\@print{Part&nbsp;V}\quad{}Appendix}
\newlabel{p:appendix}{{V}{X}}
