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