123456789101112131415161718192021222324252627282930313233343536373839404142434445type'at='aLwt.t(* Define let_catch_result with the same signature as Lwt_result.catch
for lwt version >= 6.0. This function can be replaced by
Lwt_result.catch if/when we bump minimum required version of Lwt to >= 6.0.
See https://github.com/ocsigen/lwt/pull/965
*)letlwt_result_catchf=Lwt.catch(fun()->Lwt_result.ok(f()))Lwt_result.failmoduleDeferred=structtype'at='aLwt.tletreturna=Lwt.returnaletcatchf=lwt_result_catchfletdon't_wait_for=Lwt.asyncletsleepfsecs=Lwt_unix.sleepsecsletfailexn=Lwt.failexnmoduleInfix=structlet(>>=)=Lwt.(>>=)let(<?>)=Lwt.(<?>)endendmoduleCondition=structtype'at='aLwt_condition.tletcreate()=Lwt_condition.create()letwaitt=Lwt_condition.waittletsignaltv=Lwt_condition.signaltvendmoduleMailbox=structtype'at=('aLwt.t*'aLwt.u)letcreate()=Lwt.wait()letsend(_,u)v=Lwt.wakeup_lateruvletrecv(t,_)=tendmoduleFd=structtypet=Lwt_unix.file_descrletcreatefd=Lwt_unix.of_unix_file_descr~set_flags:falsefdletwait_readablet=Lwt_unix.wait_readtletrelease_=Deferred.return()end