Legend:
Library
Module
Module type
Parameter
Class
Class type
Eager_deferred partially implements the Deferred interface, with a type 'a t equal to 'a Deferred.t, but where the operations are "eager", that is built upon a world where bind, map, and upon eagerly apply their closure without preemption in the case the deferred they are working with is already determined.
The goal with that approach is that one can locally write the following to switch to such a world.
open Use_eager_deferred
We do not intend at first for this to implement the entire Deferred interface, because some of this will require more experimentation and discussions. We can proceed incrementally to enrich this interface.
test/test_eager_deferred verifies that this interface is a sub interface of the Deferred interface. For documentation, refer to Deferred.
includesig ... end
includeCore_kernel.Invariant.S1
withtype'a t := 'aAsync_kernel__.Deferred1.t
val invariant :
'aBase__.Invariant_intf.inv->'aAsync_kernel__.Types.Deferred.tBase__.Invariant_intf.inv
includeCore_kernel.Monadwithtype'a t := 'aAsync_kernel__.Deferred1.t
val (>>=) :
'aAsync_kernel__.Types.Deferred.t->('a->'bAsync_kernel__.Types.Deferred.t)->'bAsync_kernel__.Types.Deferred.t
val (>>|) :
'aAsync_kernel__.Types.Deferred.t->('a->'b)->'bAsync_kernel__.Types.Deferred.t