A delayed computation that can produce a deferred.
Nothing happens with a lazy deferred unless one forces it. Forcing a lazy deferred
starts the computation, which will eventually cause the deferred to become determined.
As usual with laziness, multiply forcing a lazy deferred is no different than forcing
it a single time.
Exceptions (both synchronous and asynchronous) raised by a delayed computation are
returned by force (wait, peek, etc.), or will be raised to the monitor in effect
when force_exn (wait_exn, peek_exn, etc.) was called.
follow t f returns a new lazy deferred almost like bind' with the notable
difference that its computation will start as soon as the deferred it is following
becomes determined. Since the resulting deferred depends on the 'a value computed
by t forcing the resulting of follow will force the compuation of t.
Read-only operations.