sig
  type t =
    Raw_fd.Watching.t =
      Not_watching
    | Watch_once of 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 : t -> Sexplib.Sexp.t
  val invariant : t -> unit
end