This document is intended as a reference manual for the OCaml language. It lists the language constructs, and gives their precise syntax and informal semantics. It is by no means a tutorial introduction to the language: there is not a single example. A good working knowledge of OCaml is assumed.

No attempt has been made at mathematical rigor: words are employed with their intuitive meaning, without further definition. As a consequence, the typing rules have been left out, by lack of the mathematical framework required to express them, while they are definitely part of a full formal definition of the language.

The syntax of the language is given in BNF-like notation. Terminal
symbols are set in typewriter font (like this).
Non-terminal symbols are set in italic font (like that).
Square brackets […] denote optional components. Curly brackets
{…} denotes zero, one or several repetitions of the enclosed
components. Curly brackets with a trailing plus sign {…}^{+}
denote one or several repetitions of the enclosed components.
Parentheses (…) denote grouping.

- Lexical conventions
- Values
- Names
- Type expressions
- Constants
- Patterns
- Expressions
- Type and exception definitions
- Classes
- Module types (module specifications)
- Module expressions (module implementations)
- Compilation units