From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id A7BD77EE51 for ; Mon, 29 Apr 2013 05:45:50 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of lambda.q.q@gmail.com) identity=pra; client-ip=209.85.217.182; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="lambda.q.q@gmail.com"; x-sender="lambda.q.q@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of lambda.q.q@gmail.com designates 209.85.217.182 as permitted sender) identity=mailfrom; client-ip=209.85.217.182; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="lambda.q.q@gmail.com"; x-sender="lambda.q.q@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-lb0-f182.google.com) identity=helo; client-ip=209.85.217.182; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="lambda.q.q@gmail.com"; x-sender="postmaster@mail-lb0-f182.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AucBALHrfVHRVdm2m2dsb2JhbABSDoYfR7sRfxYOAQEBAQEGCwsJFCiCIAEFIx0BOAEDDAEFBRoCBSECAg8BBCABBQEiExuHaQMPBKBYi2KDTIN5Jw2INwEFDIEXjUSCdoETA4kMjhKPRT+BXIIcRA X-IPAS-Result: AucBALHrfVHRVdm2m2dsb2JhbABSDoYfR7sRfxYOAQEBAQEGCwsJFCiCIAEFIx0BOAEDDAEFBRoCBSECAg8BBCABBQEiExuHaQMPBKBYi2KDTIN5Jw2INwEFDIEXjUSCdoETA4kMjhKPRT+BXIIcRA X-IronPort-AV: E=Sophos;i="4.87,570,1363129200"; d="scan'208";a="15224045" Received: from mail-lb0-f182.google.com ([209.85.217.182]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 29 Apr 2013 05:45:50 +0200 Received: by mail-lb0-f182.google.com with SMTP id p10so274560lbi.41 for ; Sun, 28 Apr 2013 20:45:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:sender:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type :content-transfer-encoding; bh=p9+/kc+C8IpGvaYXsySQQ/ck3Hh02K0N+L2gLuuwUnU=; b=ZXq7N4NkkxezxchuQPlb0GRzNUZSiDO0q3SV9K9OsXXpNgkI62GI4USJta4brEzsCe A14wWFBHk5NTvai5+rBul9UouIbIeRWOBWoeqY/F7azRc4ol1ujfI6gIBjLf12R6CCIQ 6XzTNHRNP8jXFI4lrRQPfBvwQRNLkNZ/sdJjyVnQwXGbibCdyy5HJsfraHUr3Ko/K3KO HtCIRwlDybPU/tSFsIGA9Do7rcXrIC3qxi/MFBmaWgBddhuAX/4dSn/d1L1bR6tL4640 ZkLNQhZUaueRFi5MLUEI9aSkD3HpuDq2w2hOmz6k49obJlhr+1MMrfsj0em+2PSE0Lil AoKA== X-Received: by 10.112.6.135 with SMTP id b7mr7610487lba.104.1367207149647; Sun, 28 Apr 2013 20:45:49 -0700 (PDT) Received: from golf.niidar.ru.niidar.ru ([109.188.124.94]) by mx.google.com with ESMTPSA id dn9sm2488585lbc.14.2013.04.28.20.45.47 for (version=TLSv1.1 cipher=RC4-SHA bits=128/128); Sun, 28 Apr 2013 20:45:48 -0700 (PDT) Sender: Ivan Gotovchits From: Ivan Gotovchits To: Jacques Garrigue Cc: OCaML List Mailing References: <00C57DF0-C6F0-4EDE-8607-2155F3A17146@math.nagoya-u.ac.jp> Date: Mon, 29 Apr 2013 07:45:36 +0400 In-Reply-To: <00C57DF0-C6F0-4EDE-8607-2155F3A17146@math.nagoya-u.ac.jp> (Jacques Garrigue's message of "Sun, 28 Apr 2013 09:02:56 +0900") Message-ID: <87a9oi9ezj.fsf@golf.niidar.ru> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Caml-list] Request for feedback: A problem with injectivity and GADTs Jacques Garrigue writes: > > If we need to be able to define GADTs relying on the injectivity of some = abstract > types, a straightforward solution is to add injectivity annotations on ty= pe parameters, > the same way it was done for variance: > > type #'a t > I'm not sure that symbol '#' is a good choice. It is already used for open types and may impose difficulties in undestanding code (and compiler messages) when overriden. For me '#' is something polymorphic and related to OOP.=20 And indeed, =C2=AB#'a=C2=BB is to perlish... Personally, I would prefer som= ething like: type 'a t constraint 'a is injective P.S. the following symbols looks more =C2=ABinjective=C2=BB for me: '>', '^= ', '=3D', though the last one can be confused with the invariance. --=20 (__)=20 (oo)=20 /------\/=20 / | ||=20=20=20 * /\---/\=20 ~~ ~~=20=20=20 ...."Have you mooed today?"...