From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 D6345BC57 for ; Sat, 4 Dec 2010 20:37:01 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArYAAKMn+kzRVdg0kGdsb2JhbACjJggVAQEBAQkJDAcRBB6lV4lpghmEFC6IVgEBAwWFRASKbokz X-IronPort-AV: E=Sophos;i="4.59,299,1288566000"; d="scan'208";a="81718956" Received: from mail-qw0-f52.google.com ([209.85.216.52]) by mail4-smtp-sop.national.inria.fr with ESMTP; 04 Dec 2010 20:36:27 +0100 Received: by qwe4 with SMTP id 4so5144906qwe.39 for ; Sat, 04 Dec 2010 11:36:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:sender:received :in-reply-to:references:from:date:x-google-sender-auth:message-id :subject:to:cc:content-type; bh=DJ2UH0USVuDRrY4LHThbdRTq++jy9iSOy/CiHMWE1vw=; b=Zs8d6TlcxduvXdIVXtPq+obKluBMnpUUD6v4noR4YMQzOjFr1bsIKH0lA+Um5LDYmg Z+gbvbCxSaldSOU1Qi0DajZPpN/Zo+SP6yKDU7V6I8tt23nH8Ht49najsBrBRlsVXB00 Zlb1JnGZMxNlsApmo45IUqvTQVbHTiXsqBzs4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; b=E8p4WAokoPATbmPw1Ft70TC+JyCeHaU8D/ZFZhGDJkU9NM44twA0/jbizxzLgK6Lth u/IVPA00VfVMFQhPMy81nplXwVLlvsoridwCJfKA3aN9ILNp+Jxy4CXJypIsBAI6OWHG naqgfbDGhLXuRhLEstg91IK/oJTb6n98H3Geo= Received: by 10.229.212.133 with SMTP id gs5mr2627970qcb.122.1291491386579; Sat, 04 Dec 2010 11:36:26 -0800 (PST) MIME-Version: 1.0 Sender: gabriel.scherer@gmail.com Received: by 10.229.218.129 with HTTP; Sat, 4 Dec 2010 11:36:06 -0800 (PST) In-Reply-To: References: From: gasche Date: Sat, 4 Dec 2010 20:36:06 +0100 X-Google-Sender-Auth: cvHlBWNDsfQkCEss43ZDC5VRCdk Message-ID: Subject: Re: [Caml-list] GADT constructor syntax To: Jacques Le Normand Cc: caml-list caml-list Content-Type: multipart/alternative; boundary=00163630ecc753dae504969ac5d8 X-Spam: no; 0.00; syntax:01 syntax:01 foo:01 constructors:01 foo:01 baz:01 baz:01 constructors:01 caml-list:01 constructor:01 constructor:01 revised:02 revised:02 consistent:02 consistent:02 --00163630ecc753dae504969ac5d8 Content-Type: text/plain; charset=ISO-8859-1 I prefer option a) for the constructor form, and b) for the quantification syntax. I'm strongly sure that the explicit quantification is a much better choice, while I think the first choice (constructor form) is more of a matter of taste. I think the constructor form using "of" is better as the general function syntax suggests currying is possible (| Foo : a -> b -> c), while it is not possible for constructors (or you maybe it is, and then should support it). "of foo * bar * baz" is not perfect (I prefer the revised syntax "of foo and bar and baz"), but at least it's a consistent defect we're used to. --00163630ecc753dae504969ac5d8 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I prefer option a) for the constructor form, and b) for the quantification = syntax. I'm strongly sure that the explicit quantification is a much be= tter choice, while I think the first choice (constructor form) is more of a= matter of taste.

I think the constructor form using "of" is better = as the general function syntax suggests currying is possible (| Foo : a -&g= t; b -> c), while it is not possible for constructors (or you maybe it i= s, and then should support it). "of foo * bar * baz" is not perfe= ct (I prefer the revised syntax "of foo and bar and baz"), but at= least it's a consistent defect we're used to.
--00163630ecc753dae504969ac5d8--