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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id ADF79BBAF for ; Mon, 31 May 2010 16:47:05 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkgDAMJoA0yCcUBTaGdsb2JhbACSLIwcDQUGCgcRIsEYhRYE X-IronPort-AV: E=Sophos;i="4.53,334,1272837600"; d="scan'208";a="51491151" Received: from sigma957.cis.mcmaster.ca ([130.113.64.83]) by mail3-smtp-sop.national.inria.fr with ESMTP; 31 May 2010 16:47:04 +0200 Received: from Gorash7.UTS.McMaster.CA (Gorash7.UTS.mcmaster.ca [130.113.196.61]) by sigma957.cis.mcmaster.ca (8.13.7/8.13.7) with ESMTP id o4VEkvBQ002027 for ; Mon, 31 May 2010 10:47:02 -0400 (EDT) Received: from cgpsrv2.cis.mcmaster.ca (univmail.CIS.McMaster.CA [130.113.64.46]) by Gorash7.UTS.McMaster.CA (8.13.7/8.13.7) with ESMTP id o4VEkhWr030209 for ; Mon, 31 May 2010 10:46:43 -0400 Received: from [129.97.169.240] (account carette@univmail.cis.mcmaster.ca [129.97.169.240] verified) by cgpsrv2.cis.mcmaster.ca (CommuniGate Pro SMTP 5.2.12) with ESMTPSA id 304622923 for caml-list@inria.fr; Mon, 31 May 2010 10:46:44 -0400 Message-ID: <4C03CBD3.3010606@mcmaster.ca> Date: Mon, 31 May 2010 10:46:43 -0400 From: Jacques Carette User-Agent: Thunderbird 2.0.0.24 (Windows/20100228) MIME-Version: 1.0 To: caml-list@inria.fr Subject: Why is this allowed? Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Version-Mac: 5.5.9.395186, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2010.5.31.143614 X-PerlMx-Spam: Gauge=IIIIIIII, Probability=8%, Report=' BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1000_LESS 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_400_499 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, TO_NO_NAME 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __HAS_MSGID 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __MOZILLA_MSGID 0, __SANE_MSGID 0, __USER_AGENT 0' X-Spam-Flag: NO X-Spam: no; 0.00; foo:01 foo:01 metaocaml:01 structures:02 mcmaster:02 labels:03 algebraic:03 jacques:03 jacques:03 let:03 let:03 apparently:08 recover:10 causes:10 generation:12 type foo = Foo let x = Foo type foo2 = Foo | Bar let y = Foo let z = (x,y) ;; I thought that re-using of algebraic labels was not allowed - but apparently it is? Note that this means that it is impossible to "text" print such structures and hope to recover them uniquely. This also causes very subtle issues when Marshal'ing, and grave issues for code generation [think metaocaml]. Jacques