From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id E24D4BC69; Fri, 13 Oct 2006 15:15:09 +0200 (CEST) Received: from shiva.jussieu.fr (shiva.jussieu.fr [134.157.0.129]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id k9DDF9Lf009121 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 13 Oct 2006 15:15:09 +0200 Received: from courriel.upmc.fr (courriel3.reseau.jussieu.fr [134.157.0.194]) by shiva.jussieu.fr (8.13.7/jtpda-5.4) with ESMTP id k9DDF9Q9055436 ; Fri, 13 Oct 2006 15:15:09 +0200 (CEST) X-Ids: 164 Received: from etu.upmc.fr (localhost [127.0.0.1]) by courriel.upmc.fr (8.13.6/jtpda-5.4) with ESMTP id k9DDF8Qu001896 ; Fri, 13 Oct 2006 15:15:08 +0200 (CEST) Received: from out-of.ilog.fr (out-of.ilog.fr [81.80.159.49]) by webmail.etu.upmc.fr (Horde MIME library) with HTTP; Fri, 13 Oct 2006 15:15:08 +0200 Message-ID: <20061013151508.2ta6v6y5k4sc80co@webmail.etu.upmc.fr> Date: Fri, 13 Oct 2006 15:15:08 +0200 From: Diego Olivier FERNANDEZ PONS To: Luc Maranget Cc: caml-list@inria.fr Subject: Re: [Caml-list] Why + vs +. but "fake" parametric polymorphism for < References: <1160630285.7649.18.camel@monad> <20061012.144518.115907516.garrigue@math.nagoya-u.ac.jp> <1160632737.7649.34.camel@monad> <20061013135650.48rwzsri8ws8coww@webmail.etu.upmc.fr> <1160741662.16545.9.camel@localhost.localdomain> <20061013144605.vvzwfl4pw0kockw8@webmail.etu.upmc.fr> <20061013130100.GA10977@yquem.inria.fr> In-Reply-To: <20061013130100.GA10977@yquem.inria.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable User-Agent: Internet Messaging Program (IMP) H3 (4.1.3) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0.2 (shiva.jussieu.fr [134.157.0.164]); Fri, 13 Oct 2006 15:15:09 +0200 (CEST) X-Virus-Scanned: ClamAV 0.88.2/2028/Thu Oct 12 22:36:51 2006 on shiva.jussieu.fr X-Virus-Status: Clean X-Miltered: at concorde with ID 452F915D.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at shiva.jussieu.fr with ID 452F915D.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; pons:01 pons:01 parametric:01 polymorphism:01 maranget:01 maranget:01 mli:01 annotation:01 val:01 fib:01 fib:01 haskell:01 annotations:01 mli:01 l'inference:01 Bonjour, Quoting Luc Maranget : >>> This is simply the logic of the .mli. >> >> Very well, but why ? > > By design, I guess. Oui mais pourquoi ? Allez... je retombe en enfance. Quand j'=E9tais petit, j'ai voulu mettre une annotation de type dans mon =20 code Caml du genre: val fib : int -> int let rec fib =3D function ... Et on m'a dit "Ah non mon gar=E7on, =E7a c'est du Haskell. En Caml on met = =20 les annotations dans le .mli, c'est d'ailleurs =E7a le _veritable_ =20 esprit de l'inf=E9rence de types : ne pas avoir besoin d'=E9crire de types". Il faut reconna=EEtre que l'on a tout fait pour rendre les annotations =20 de type dans le code totalement illisibles - comparativement =E0 Haskell =20 par exemple. Et tout fait pour que le .mli soit ais=E9ment utilisable =20 (Ctrl-C Ctrl-A sous Emacs, outils de documentation, etc.) Mais apr=E8s on me dit que si je mets mes annotations de type dans le =20 .mli c'est moins bien que si je les mets dans le .ml avec la syntaxe =20 illisible car les optimisations ne sont pas faites. Et l'esprit de l'inf=E9rence de types alors ? Diego Olivier