Module IOO


module IOO: sig  end
OO Wrappers for IO.

Theses OO Wrappers have been written to provide easy support of ExtLib IO by external librairies. If you want your library to support ExtLib IO without actually requiring ExtLib to compile, you have two choices :

You can implement classes having the same signatures as o_input and o_output, then the ExtLib user will be able to create an IO using from_in and from_out functions. Theses classes are providing the same facilities than IO, and are then following the same specification.

You can also implement the classes in_channel, out_channel, poly_in_channel and/or poly_out_channel which are the common IO specifications established for ExtLib, OCamlNet and Camomile. It provides a more generic interface, but with less features.


class [('a, 'b)] o_input : ('a, 'b) IO.input -> object  end
class [('a, 'b, 'c)] o_output : ('a, 'b, 'c) IO.output -> object  end
val from_in : ('a, 'b) #o_input -> ('a, 'b) IO.input
val from_out : ('a, 'b, 'c) #o_output -> ('a, 'b, 'c) IO.output


Generic IO Object Wrappers


class in_channel : ('a, string) IO.input -> object  end
class out_channel : ('a, string, 'b) IO.output -> object  end
class ['a] poly_in_channel : ('a, 'b) IO.input -> object  end
class ['a] poly_out_channel : ('a, 'b, 'c) IO.output -> object  end
val from_in_channel : #in_channel -> (char, string) IO.input
val from_out_channel : #out_channel -> (char, string, unit) IO.output
val from_poly_in_channel : 'a #poly_in_channel -> ('a, 'a list) IO.input
val from_str_in_channel : char #poly_in_channel -> (char, string) IO.input
val from_poly_out_channel : 'a #poly_out_channel -> ('a, 'a list, unit) IO.output
val from_str_out_channel : char #poly_out_channel -> (char, string, unit) IO.output