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 list ->
    callback:(Glib.Io.condition list -> 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
  val read_chars : Glib.Io.channel -> buf:string -> pos:int -> len:int -> int
end