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 mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id DAD13BC58 for ; Sat, 30 Oct 2010 15:50:22 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApEIAKK/y0xii1rmZGdsb2JhbACTG44zGgoLBREFH6o7gheFWIkFAQQEAYU/BIRXiQWHfw X-IronPort-AV: E=Sophos;i="4.58,264,1286143200"; d="scan'208";a="77427495" Received: from nm3-vm0.bullet.mail.sp2.yahoo.com ([98.139.90.230]) by mail2-smtp-roc.national.inria.fr with SMTP; 30 Oct 2010 15:50:21 +0200 Received: from [98.139.91.69] by nm3.bullet.mail.sp2.yahoo.com with NNFMP; 30 Oct 2010 13:50:20 -0000 Received: from [98.139.91.41] by tm9.bullet.mail.sp2.yahoo.com with NNFMP; 30 Oct 2010 13:50:20 -0000 Received: from [127.0.0.1] by omp1041.mail.sp2.yahoo.com with NNFMP; 30 Oct 2010 13:50:20 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 805253.41111.bm@omp1041.mail.sp2.yahoo.com Received: (qmail 30271 invoked by uid 60001); 30 Oct 2010 13:50:20 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1288446620; bh=5hHzCvvV89nwT9YkOg4h+A4W7/IixjAGyfeK0LWC/nc=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=aCa8KQ1VmEOanJcuI/HVIWjZYrBMobiyzSPDl/8jCLg+Hecm+OnhhDjbsKqmAnHMXupt40JmEisLeOaV2oul+3SUTamutOAV99GJnqwNeKlvHqr6shkFrnUvwLm2QKBPV3WABhw1bOjG0/rhpibVqq0hjWdBNo9HpM8Tv+pmTOE= DomainKey-Signature:a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=1VtDqB+FmY6FjqXLWO8HJa4HPNzNY2fGhlLrV8glKuY+44raEw5JMd+o7n7jw0p/02nkxRMjeB2ZCeCIzAhsBS0fLl3uF019U/sajiyEDrMTEiXhq6PbGsl36+ezqRXsspWludhtWtOO8QNMMTzosRUxIATyqzkREDP8sCn4Ubw=; Message-ID: <269358.29509.qm@web111503.mail.gq1.yahoo.com> X-YMail-OSG: jK7rcRMVM1m5MHg1gv3XTcCngu08Z4c6MY7Ta1vyFJSpzHz cL8hstfrq67bKMO0QoAvA663Z2JDYjJmmWSR15FBCycqRg6KNHFKwUJaSCqd zK7CdlXFHEdQ40FkKA7dPseLkL3cLGE9Y3VXF7qv.Nq_qx73HalA72WLJTpw 6Je1SQ7h3FqfL0M071d_BEe5YKIk.su_tgW_UHjSHKBTnlOrpeitqPXqpE4n OLzVT7rmHMv2X8UnPufAIZWiL__IePxf5P4DYG.7DrEnZpBF4GQtjLbA7vll aASlT_c8DBCZDSrgDcjoDXsy0Aj4F1dX9i7a08tH3ACYeXY0BedObG2k- Received: from [213.205.70.210] by web111503.mail.gq1.yahoo.com via HTTP; Sat, 30 Oct 2010 06:50:19 PDT X-Mailer: YahooMailClassic/11.4.9 YahooMailWebService/0.8.107.284920 Date: Sat, 30 Oct 2010 06:50:19 -0700 (PDT) From: Dario Teixeira Subject: Re: [Caml-list] Re: Generalized Algebraic Datatypes To: caml-list@inria.fr, Jacques Garrigue In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Spam: no; 0.00; datatypes:01 syntax:01 existential:01 syntax:01 constructors:01 curried:01 avoided:01 caml-list:01 exceptions:01 partially:02 breaks:02 implemented:02 variables:02 consistent:02 algebraic:03 Hi,=0A=0A> If the risk of confusion with constructors-as-functions is deeme= d=0A> problematic, a syntax like=0A> =A0=A0=A0App of ('a -> 'b) t * 'a t : = 'b t=0A> seems OK too.=0A> Actually this would have the advantage of allowi= ng the scope of=0A> existential variables to be explicit. I.e. one could wr= ite=0A> =A0 App of 'a. ('a -> 'b) t * 'a t : 'b t=0A=0AI find this new synt= ax preferable too. As I just mentioned in my reply to=0AStefan Monnier, my= main criticism to the currently implemented GADT syntax=0Ais that type con= structors are declared in a curried way, despite the fact=0Athat they canno= t actually be partially applied. This breaks an assumption=0Athat is other= wise consistent throughout the language, and I think we can=0Aall agree tha= t adding caveats and exceptions to a language specification=0Ais something = that should be avoided as much as possible (and is often the=0Asymptom of a= bad specification).=0A=0ABest regards,=0ADario Teixeira=0A=0A=0A=0A