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.1 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 3365FBB84 for ; Thu, 15 Jan 2009 13:51:34 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnUBAETAbklRZ90wlGdsb2JhbACNUIYuAQEBAQkLCAkRA7pUhW6EOw X-IronPort-AV: E=Sophos;i="4.37,269,1231110000"; d="scan'208";a="33779112" Received: from mtaout02-winn.ispmail.ntl.com ([81.103.221.48]) by mail4-smtp-sop.national.inria.fr with ESMTP; 15 Jan 2009 13:51:33 +0100 Received: from aamtaout04-winn.ispmail.ntl.com ([81.103.221.35]) by mtaout02-winn.ispmail.ntl.com (InterMail vM.7.08.04.00 201-2186-134-20080326) with ESMTP id <20090115125133.CQQ4080.mtaout02-winn.ispmail.ntl.com@aamtaout04-winn.ispmail.ntl.com>; Thu, 15 Jan 2009 12:51:33 +0000 Received: from romulus.metastack.com ([81.102.132.77]) by aamtaout04-winn.ispmail.ntl.com (InterMail vG.2.02.00.01 201-2161-120-102-20060912) with ESMTP id <20090115125133.LYGD22934.aamtaout04-winn.ispmail.ntl.com@romulus.metastack.com>; Thu, 15 Jan 2009 12:51:33 +0000 Received: from Countertenor ([172.16.0.6]) (authenticated bits=0) by romulus.metastack.com (8.14.2/8.14.2) with ESMTP id n0FCpQxf013327 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Thu, 15 Jan 2009 12:51:27 GMT From: "David Allsopp" To: "'Jacques Garrigue'" Cc: References: <1231924711.2711.11.camel@serphost.localdomain> <496DEC48.7000906@wp.pl> <001801c9765e$4fabc3b0$ef034b10$@com> <20090115.211335.27794984.garrigue@math.nagoya-u.ac.jp> In-Reply-To: <20090115.211335.27794984.garrigue@math.nagoya-u.ac.jp> Subject: RE: [Caml-list] What is a future of ocaml? Date: Thu, 15 Jan 2009 12:51:07 -0000 Organization: MetaStack Solutions Ltd. Message-ID: <00b301c9770f$efc241b0$cf46c510$@com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: Acl3CqsOlmIV7+SmTquvBQMjCxEdGwABD+rQ Content-Language: en-gb X-Scanned-By: MIMEDefang 2.64 on 81.102.132.74 X-Cloudmark-Analysis: v=1.0 c=1 a=NNKVIpxObBgA:10 a=Sq0X1oZEF30A:10 a=52lKmPCn77SelAOMD_0A:9 a=GJ3S-R-OMQfGOjcNe49-RPKgEngA:4 a=Mz_smNXqyOQA:10 X-Spam: no; 0.00; ocaml:01 variants:01 ocaml:01 annotations:01 variants:01 coercions:01 annotations:01 polymorphic:01 polymorphic:01 wrote:01 caml-list:01 explicitly:02 tree:02 annotation:02 annotation:02 Jacques Garrigue wrote: > The reason is mostly wrong :-) That'll teach me to comment on type theory on this list :o) > And neither polymorphic variants nor object require type anotations in > ocaml; they just make it much more painful to understand error > messages. Though I'm confused by this - I thought that polymorphic methods in classes (a part of the object system) do require type annotations and there are cases with polymorphic variants where coercions (which I'd regard as a type annotation?) must be explicitly written for a valid program to type. I wasn't trying to say that all uses of them require type annotations, just that there are occasions where you *have* to use them whereas for "core" ML you never *have* to include a type annotation for *any* valid program - your types just might be more general than you expect/want. Or am I still barking up the wrong tree? David