# Chapter ‍10 Language extensions

This chapter describes language extensions and convenience features that are implemented in OCaml, but not described in chapter 9.

- 10.1 Recursive definitions of values
- 10.2 Recursive modules
- 10.3 Private types
- 10.4 Locally abstract types
- 10.5 First-class modules
- 10.6 Recovering the type of a module
- 10.7 Substituting inside a signature
- 10.8 Type-level module aliases
- 10.9 Overriding in open statements
- 10.10 Generalized algebraic datatypes
- 10.11 Syntax for Bigarray access
- 10.12 Attributes
- 10.13 Extension nodes
- 10.14 Extensible variant types
- 10.15 Generative functors
- 10.16 Extension-only syntax
- 10.17 Inline records
- 10.18 Documentation comments
- 10.19 Extended indexing operators
- 10.20 Empty variant types
- 10.21 Alerts
- 10.22 Generalized open statements
- 10.23 Binding operators