# Chapter ‍8 Language extensions

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

- 8.1 Recursive definitions of values
- 8.2 Recursive modules
- 8.3 Private types
- 8.4 Locally abstract types
- 8.5 First-class modules
- 8.6 Recovering the type of a module
- 8.7 Substituting inside a signature
- 8.8 Type-level module aliases
- 8.9 Overriding in open statements
- 8.10 Generalized algebraic datatypes
- 8.11 Syntax for Bigarray access
- 8.12 Attributes
- 8.13 Extension nodes
- 8.14 Extensible variant types
- 8.15 Generative functors
- 8.16 Extension-only syntax
- 8.17 Inline records
- 8.18 Documentation comments
- 8.19 Extended indexing operators
- 8.20 Empty variant types
- 8.21 Alerts
- 8.22 Generalized open statements
- 8.23 Binding operators