# Module type Uq_libevent.LIBOEVENT

    module type LIBOEVENT = sig .. end

    type event

    type event_flags =

`|` | `TIMEOUT`
`|` | `READ`
`|` | `WRITE`
`|` | `SIGNAL`

    type event_callback = Unix.file_descr -> event_flags -> unit

    val create : unit -> event

    val set : event ->
           Unix.file_descr ->
           event_flags list ->
           persist:bool -> event_callback -> unit

    val add : event -> float option -> unit

    val del : event -> unit

    type loop_flags =

`|` | `ONCE`
`|` | `NONBLOCK`

    val loop : loop_flags -> unit