`sig
type 'a t
val return : 'a -> 'a PGOCaml_generic.THREAD.t
val ( >>= ) :
'a PGOCaml_generic.THREAD.t ->
('a -> 'b PGOCaml_generic.THREAD.t) -> 'b PGOCaml_generic.THREAD.t
val fail : exn -> 'a PGOCaml_generic.THREAD.t
val catch :
(unit -> 'a PGOCaml_generic.THREAD.t) ->
(exn -> 'a PGOCaml_generic.THREAD.t) -> 'a PGOCaml_generic.THREAD.t
type in_channel
type out_channel
val open_connection :
Unix.sockaddr ->
(PGOCaml_generic.THREAD.in_channel * PGOCaml_generic.THREAD.out_channel)
PGOCaml_generic.THREAD.t
val output_char :
PGOCaml_generic.THREAD.out_channel ->
char -> unit PGOCaml_generic.THREAD.t
val output_binary_int :
PGOCaml_generic.THREAD.out_channel ->
int -> unit PGOCaml_generic.THREAD.t
val output_string :
PGOCaml_generic.THREAD.out_channel ->
string -> unit PGOCaml_generic.THREAD.t
val flush :
PGOCaml_generic.THREAD.out_channel -> unit PGOCaml_generic.THREAD.t
val input_char :
PGOCaml_generic.THREAD.in_channel -> char PGOCaml_generic.THREAD.t
val input_binary_int :
PGOCaml_generic.THREAD.in_channel -> int PGOCaml_generic.THREAD.t
val really_input :
PGOCaml_generic.THREAD.in_channel ->
Bytes.t -> int -> int -> unit PGOCaml_generic.THREAD.t
val close_in :
PGOCaml_generic.THREAD.in_channel -> unit PGOCaml_generic.THREAD.t
end`