sig
  type channel
  type condition = [ `ERR | `HUP | `IN | `NVAL | `OUT | `PRI ]
  type id
  val channel_of_descr : Unix.file_descr -> Glib.Io.channel
  val add_watch :
    cond:Glib.Io.condition ->
    callback:(unit -> bool) -> ?prio:int -> Glib.Io.channel -> Glib.Io.id
  val remove : Glib.Io.id -> unit
  val read : Glib.Io.channel -> buf:string -> pos:int -> len:int -> int
end