sig
  exception Error of string * int
  type select_event =
      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 type_event =
      Access
    | Attrib
    | Close_write
    | Close_nowrite
    | Create
    | Delete
    | Delete_self
    | Modify
    | Move_self
    | Moved_from
    | Moved_to
    | Open
    | Ignored
    | Isdir
    | Q_overflow
    | Unmount
  type wd
  type event = Inotify.wd * Inotify.type_event list * int32 * string option
  val int_of_wd : Inotify.wd -> int
  val string_of_event : Inotify.type_event -> string
  val init : unit -> Unix.file_descr
  val add_watch :
    Unix.file_descr -> string -> Inotify.select_event list -> Inotify.wd
  val rm_watch : Unix.file_descr -> Inotify.wd -> unit
  val read : Unix.file_descr -> Inotify.event list
end