From: Nicolas C. <war...@fr...> - 2004-07-24 11:19:54
|
Hi list, After writing the Unzip module, I was wondering if we could not simplify the IO module. Actually having a very abstract IO ( such as ('a ,'b) IO.input ) is nice design but in the facts 95% of the time we're using (char,string) inputs and outputs. I'm planing then, if everybody agree, to simplify the IO module : type input type 'a output (* we're still keeping the useful return parameter when closing *) val read : input -> char val nread : input -> int -> string val input : input -> string -> int -> int -> int val close_in : input -> unit val write : 'a output -> char -> unit val nwrite : 'a output -> string -> unit val output : 'a output -> string -> int -> int -> unit val flush : 'a output -> unit val close_out : 'a output -> 'a [...] The benefits are : - more simple interface (less type parameters) - more compatible with Common IO defined here http://www.ocaml-programming.de/tmp/IO-Classes.html - more efficient because adding of input / output primitives I personaly think it's worth the change, and that we should switch quickly. Regards, Nicolas Cannasse |