sig
  type selector =
      S_Access
    | S_Attrib
    | S_Close_write
    | S_Close_nowrite
    | S_Create
    | S_Delete
    | S_Delete_self
    | S_Modify
    | S_Move_self
    | S_Moved_from
    | S_Moved_to
    | S_Open
    | S_Dont_follow
    | S_Mask_add
    | S_Oneshot
    | S_Onlydir
    | S_Move
    | S_Close
    | S_All
  type event_kind =
      Access
    | Attrib
    | Close_write
    | Close_nowrite
    | Create
    | Delete
    | Delete_self
    | Modify
    | Move_self
    | Moved_from
    | Moved_to
    | Open
    | Ignored
    | Isdir
    | Q_overflow
    | Unmount
  type watch
  type event =
      Inotify.watch * Inotify.event_kind list * int32 * string option
  val int_of_watch : Inotify.watch -> int
  val watch_of_int : int -> Inotify.watch
  val string_of_event_kind : Inotify.event_kind -> string
  val string_of_event : Inotify.event -> string
  val create : unit -> Unix.file_descr
  val add_watch :
    Unix.file_descr -> string -> Inotify.selector list -> Inotify.watch
  val rm_watch : Unix.file_descr -> Inotify.watch -> unit
  val read : Unix.file_descr -> Inotify.event list
end