123456789101112131415161718moduleTypes=Async_ssl_bindings.Ffi_bindings.Types(Ffi_generated_types)moduleBindings=Async_ssl_bindings.Ffi_bindings.Bindings(Ffi_generated)(* All debug traces are guarded with [if verbose]. *)letverbose=false(** Iterate a function while another function is true.
Results are collected in reverse order for performance. Use [List.rev] if you need
results in the order they were produced. *)letiter_while_rev:typea.iter:(unit->a)->cond:(a->bool)->alist=fun~iter~cond->letrecgosofar=letr=iter()inifcondrthengo(r::sofar)elsesofaringo[];;