sig
  exception Main_error of error * string
  exception Fatal of exn * Printexc.raw_backtrace
  val yield : unit -> unit Lwt.t
  val run : 'Lwt.t -> 'a
  val enter_iter_hooks : (unit -> unit) Lwt_sequence.t
  val leave_iter_hooks : (unit -> unit) Lwt_sequence.t
  val exit_hooks : (unit -> unit Lwt.t) Lwt_sequence.t
  val at_exit : (unit -> unit Lwt.t) -> unit
  val cleanup : unit -> unit
end