sig
  val run : 'Lwt.t -> 'a
  val exit_hooks : (unit -> unit Lwt.t) Lwt_sequence.t
  val at_exit : (unit -> unit Lwt.t) -> unit
  type fd_set = Unix.file_descr list
  type current_time = float Lazy.t
  type select =
      Lwt_main.fd_set ->
      Lwt_main.fd_set ->
      Lwt_main.fd_set ->
      float option ->
      Lwt_main.current_time * Lwt_main.fd_set * Lwt_main.fd_set *
      Lwt_main.fd_set
  val select_filters :
    (Lwt_main.current_time -> Lwt_main.select -> Lwt_main.select)
    Lwt_sequence.t
  val apply_filters : Lwt_main.select -> Lwt_main.select
  val default_select : Lwt_main.select
  val default_iteration : unit -> unit
  val main_loop_iteration : (unit -> unit) Pervasives.ref
  val min_timeout : float option -> float option -> float option
end