19.14 | Module `Lazy`: deferred computations.

    type 'a status =
      | Delayed of (unit -> 'a)
      | Value of 'a
      | Exception of exn
    ;;
    type 'a t = 'a status ref;;

> A value of type `'a Lazy.t` is a deferred computation (also called a suspension) that computes a result of type `'a`. The expression `lazy (expr)` returns a suspension that computes `expr`.

    exception Undefined;;
    val force: 'a t -> 'a;;

> `Lazy.force x` computes the suspension `x` and returns its result. If the suspension was already computed, `Lazy.force x` returns the same value again. If it raised an exception, the same exception is raised again. Raise `Undefined` if the evaluation of the suspension requires its own result.