1. mutable data structures

The OCaml standard library provides several mutable data structures, including strings, arrays, hash tables, queues and stacks.

2. immutable data structures

The OCaml standard library provides several immutable data structures, including ints, floats, chars, lists, sets and maps.

3. high-order functions

In functional programming languages, functions can accept other functions as arguments. A function that has a function argument is known as a higher-order function.

Operators in mathematics are one example of higher-order functions. For example, the derivative operator can be thought of as a function that accepts a function as an argument and returns its derivative function as the result.