Module Lazy

module Lazy = struct ... end 
'a status
= Delayed of  (unit -> 'a)
| Value of  'a
| Exception of  exn
'b t 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.
= 'b status Pervasives.ref



force : 'c t -> 'c
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.