From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id 05AE9BB81 for ; Fri, 24 Feb 2006 09:38:15 +0100 (CET) Received: from mail.barettadeit.com (h213-255-109-130.albacom.net [213.255.109.130] (may be forged)) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id k1O8cErB013254 for ; Fri, 24 Feb 2006 09:38:14 +0100 Received: from [10.0.0.10] (alex.barettalocal.com [10.0.0.10]) by mail.barettadeit.com (Postfix) with ESMTP id EE42EA54BD; Fri, 24 Feb 2006 09:38:45 +0100 (CET) Message-ID: <43FEC5EE.7020406@studio.baretta.com> Date: Fri, 24 Feb 2006 09:38:06 +0100 From: Alessandro Baretta User-Agent: Debian Thunderbird 1.0.7 (X11/20051017) X-Accept-Language: en-us, en MIME-Version: 1.0 To: =?ISO-8859-1?Q?Fr=E9d=E9ric_Gava?= Cc: caml-list@yquem.inria.fr Subject: Re: [Caml-list] (int * int) <> int*int ? References: <006101c6389e$9bbbc440$1f570b50@mshome.net> <20060223183306.GA17390@localhost> <009b01c638ac$6a57b0e0$1f570b50@mshome.net> In-Reply-To: <009b01c638ac$6a57b0e0$1f570b50@mshome.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Miltered: at nez-perce with ID 43FEC5F6.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; baretta:01 baretta:01 caml-list:01 gava:01 runtime:01 char:01 runtime:01 syntax:01 syntax:01 ingegneria:98 wrote:01 syntactic:01 constructor:01 int:01 int:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=FORGED_RCVD_HELO autolearn=disabled version=3.0.3 Frédéric Gava wrote: >>And since the runtime representations are different, the types have to be >>different. > Wrong, you can the same representation but different types (e.g. int, char > or many other examples) Be careful when you reason about a proposition like "if A then B" in negated terms. You are stating that "if (runtime representations are different) then (types are different)" is false because "if not (runtime representations are different) then not (types are different)" is false, but the second proposition is not equivalent to the first. *** Back to the original topic: this is a syntactic issue. DdR has solved the issue in revised syntax, by making it very clear that 'a * 'b is a tuple, while an n-ary constructor takes n distinct formal parameters--by no means an n-uple. This is one of the very few spots where revised syntax is really more attractive than the original one. > type t = [ A of t1 and t2 ] > type t' = [ A of (t1 * t2) ] Alex -- ********************************************************************* Ing. Alessandro Baretta Studio Baretta http://studio.baretta.com/ Consulenza Tecnologica e Ingegneria Industriale Technological Consulting and Industrial Engineering tel. +39 02 370 111 55 fax. +39 02 370 111 54