sig
  type t =
      Not_watching
    | Watch_once of Raw_fd.ready_to_result Import.Ivar.t
    | Watch_repeatedly of Async_core.Job.t *
        [ `Bad_fd | `Closed | `Interrupted ] Import.Ivar.t
    | Stop_requested
  val sexp_of_t : Raw_fd.Watching.t -> Sexplib.Sexp.t
  val invariant : Raw_fd.Watching.t -> unit
end