123456789101112131415161718192021moduletypeSleep=sig(** Minimal signature for an implementation of {!sleep} using {!Lwt}. *)valsleep:float->unitLwt.t(** [sleep seconds] should return a cancelable promise that resolves after
given number of [seconds] (unless canceled). *)endmoduletypeS=sig(** Direct style {!Picos} compatible interface to {!Lwt}. *)valrun:forbid:bool->(unit->'a)->'aLwt.t(** [run ~forbid main] runs the [main] program implemented in {!Picos} as a
promise with {!Lwt} as the scheduler. In other words, the [main] program
will be run as a {!Lwt} promise or fiber. *)valawait:(unit->'aLwt.t)->'a(** [await thunk] awaits for the promise returned by [thunk ()] to resolve and
returns the result. This should only be called from inside a fiber
started through {!run}. *)end