Previous Contents Next
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.

Previous Contents Next