# Language extensions

This chapter describes the language features that are implemented in Caml Light, but not described in the Caml Light reference manual. In contrast with the fairly stable kernel language that is described in the reference manual, the extensions presented here are still experimental, and may be removed or changed in the future.

- Streams, parsers, and printers
- Guards
- Range patterns
- Recursive definitions of values
- Local definitions using `where`
- Mutable variant types
- String access
- Alternate syntax
- Infix symbols
- Directives