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