From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 5BBE7BBAF for ; Sun, 5 Dec 2010 09:25:56 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ar0AAGfb+kzRVdg0kGdsb2JhbACjKggVAQEBAQkJDAcRBB6lAolpghmEBS6IVgEBAwWFRASKboYF X-IronPort-AV: E=Sophos;i="4.59,301,1288566000"; d="scan'208";a="83107519" Received: from mail-qw0-f52.google.com ([209.85.216.52]) by mail2-smtp-roc.national.inria.fr with ESMTP; 05 Dec 2010 09:25:55 +0100 Received: by qwe4 with SMTP id 4so5389231qwe.39 for ; Sun, 05 Dec 2010 00:25:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=eQPabo3XL+zx++tjIcl/2nhpC4W7+fPYCxmvcxXViQg=; b=M9IezANB0DCYxB5ja9YaqqmKcw/IcQwu6zYjAbVV/6yhB5aOZdDIQicN88xgy2qrey R9vjUu+5As8s91xAwSmfD0uAmFf/Q5RQ6USTdL03LK6LAWzzWLXywMj4gbZEC3tKfXpk xcJ9K0GKsqDCNLZmxXvjDgSw9DheNzsymxfKQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; b=rGdpU3aWy73MORSuBaC2YYUzWVZFVfYuAdrZTo73xWptFQj+l93YczKVwWGu+ns4Dx 5Awac/9D87/ABp5U7f3Tq/RrI41oPARhsCGXZ1t5ikohDTzhk5uCZhYrjYLfcXecF1FZ wge4eL7Rn/ZPEI4O9B4aqLOfwMwvgkeyc3KX8= Received: by 10.229.183.135 with SMTP id cg7mr3012286qcb.296.1291537555294; Sun, 05 Dec 2010 00:25:55 -0800 (PST) MIME-Version: 1.0 Received: by 10.229.230.149 with HTTP; Sun, 5 Dec 2010 00:25:35 -0800 (PST) In-Reply-To: References: From: Lukasz Stafiniak Date: Sun, 5 Dec 2010 09:25:35 +0100 Message-ID: Subject: Re: [Caml-list] GADT constructor syntax To: Jacques Le Normand Cc: caml-list caml-list Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Spam: no; 0.00; lukasz:01 syntax:01 lukasz:01 quantified:01 notation:01 existential:01 wrote:01 caml-list:01 constructor:01 exceptions:01 int:01 int:01 explicitly:02 variables:02 pattern:04 On Sun, Dec 5, 2010 at 9:10 AM, Lukasz Stafiniak wrote= : > > shouldn't mean that Embed is "basically" Embed of int : int term. My > position is that if a type variable should be treated as local to a > branch, it should be explicitly quantified (using the dot notation, > for example "Ignore of 'a. 'a : int term", without any exceptions to > "existential" variables). And that the patterns > > type X =3D > =A0| Branch of Y > > and > > type X =3D > =A0| Branch of Y : X > > should be equivalent (where X could for example be 'a term). To clarify again: modulo variable capture! That is, the pattern > type X =3D > =A0| Branch of 'a. Y : X will be different (unless 'a is not used in Y nor X).