From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id LAA19051; Sat, 24 Apr 2004 11:30:40 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id LAA18931; Sat, 24 Apr 2004 11:30:38 +0200 (MET DST) Received: from postfix3-1.free.fr (postfix3-1.free.fr [213.228.0.44]) by concorde.inria.fr (8.12.10/8.12.10) with ESMTP id i3O9UcYM005275; Sat, 24 Apr 2004 11:30:38 +0200 Received: from warp (chateaudeau-4-82-225-176-25.fbx.proxad.net [82.225.176.25]) by postfix3-1.free.fr (Postfix) with SMTP id 9202BC4237; Sat, 24 Apr 2004 11:30:37 +0200 (CEST) Message-ID: <007501c429de$7aee90b0$19b0e152@warp> From: "Nicolas Cannasse" To: , "John Goerzen" Cc: "Maxence Guesdon" , "Caml list" References: Subject: Re: [Caml-list] [ANN] The Missing Library Date: Sat, 24 Apr 2004 11:28:19 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 X-Miltered: at concorde by Joe's j-chkmail ("http://j-chkmail.ensmp.fr")! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; cannasse:01 warplayer:01 caml-list:01 stdlib:01 incompatible:01 printf:01 printf:01 sprintf:01 buffer:01 formatter:01 fprintf:01 extlib:01 high-level:01 cannasse:01 ocaml:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk [...] > Btw, the compatibility choice already appears with the stdlib, because > there are several incompatible ways to do the same thing in OCaml. As an > example, take the *printf function. If you write a library with an > abstract type t and want to provide a printer, you have to choose between > (or give all of): > > print: (out_channel -> t -> unit) -> t -> unit > (* for use with Printf.(f?)printf *) > > print: (unit -> t -> string) -> t -> string > (* for use with (Printf|Format).sprintf *) > > print: (Buffer.t -> t -> unit) -> t -> unit > (* for use with Printf.bprintf *) > > print: (Format.formatter -> t-> unit) -> t -> unit > (* for use with Format.fprintf *) > > ... There is a beginning of answer in the ExtLib : it's the new IO module that is enabling high-level abstracts inputs/ouputs. http://ocaml-lib.sf.net as usual :-) Regards, Nicolas Cannasse ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners