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 concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 213B9BB81 for ; Thu, 23 Feb 2006 22:32:37 +0100 (CET) Received: from smtp6.wanadoo.fr (smtp6.wanadoo.fr [193.252.22.25]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id k1NLWa60000577 for ; Thu, 23 Feb 2006 22:32:36 +0100 Received: from me-wanadoo.net (localhost [127.0.0.1]) by mwinf0604.wanadoo.fr (SMTP Server) with ESMTP id BB19F1C00195 for ; Thu, 23 Feb 2006 22:32:36 +0100 (CET) Received: from nono (ARouen-106-1-3-31.w80-11.abo.wanadoo.fr [80.11.87.31]) by mwinf0604.wanadoo.fr (SMTP Server) with SMTP id 5F7E51C00190; Thu, 23 Feb 2006 22:32:36 +0100 (CET) X-ME-UUID: 20060223213236392.5F7E51C00190@mwinf0604.wanadoo.fr Message-ID: <00f001c638c1$380da620$1f570b50@mshome.net> From: =?iso-8859-1?Q?Fr=E9d=E9ric_Gava?= To: Cc: "Jon Harrop" References: <006101c6389e$9bbbc440$1f570b50@mshome.net> <200602232058.59170.jon@ffconsultancy.com> Subject: Re: [Caml-list] (int * int) <> int*int ? Date: Thu, 23 Feb 2006 22:36:34 +0100 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 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Miltered: at concorde with ID 43FE29F4.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; gava:01 gava:01 caml-list:01 afaik:01 run-time:01 char:01 variants:01 variants:01 12.:98 polymorphic:01 polymorphic:01 constructor:01 behaviour:01 logical: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=1.0 required=5.0 tests=RCVD_IN_NJABL_PROXY autolearn=disabled version=3.0.3 >Only historical reasons, AFAIK. I do not believe this is necessary or that >there is a logical reason for doing so. Peraps. I do not know. Peraps also to keep safe old programs... >I also believe that statement was wrong but I don't think you have provided >counter-examples because the run-time representations are the same for the >different types that you cite (rather than the converse). I just want to say that in or char have the same representation but different types (contraposition) >Also, note that this behaviour does not appear with polymorphic variants, >where int * int <=> (int * int): ># type t = A of int * int | B of (int * int);; >type t = A of int * int | B of (int * int) ># type t = [ `A of int * int | `B of (int * int) ];; >type t = [ `A of int * int | `B of int * int ] >I assume the arguments of a polymorphic variant are always boxed... This is why you could not have more than 255 constructor in concrete variants and many more in polymorphic ones. FG