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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 5C8787F92A for ; Wed, 11 Jun 2014 04:20:54 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of garrigue@math.nagoya-u.ac.jp) identity=pra; client-ip=133.6.130.5; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="garrigue@math.nagoya-u.ac.jp"; x-sender="garrigue@math.nagoya-u.ac.jp"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of garrigue@math.nagoya-u.ac.jp) identity=mailfrom; client-ip=133.6.130.5; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="garrigue@math.nagoya-u.ac.jp"; x-sender="garrigue@math.nagoya-u.ac.jp"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mailhost.math.nagoya-u.ac.jp) identity=helo; client-ip=133.6.130.5; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="garrigue@math.nagoya-u.ac.jp"; x-sender="postmaster@mailhost.math.nagoya-u.ac.jp"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkQDAOi7l1OFBoIFnGdsb2JhbABZrzUGmRIBgR4PAQEBAQEIFAk8hAMBAQQBOgYDATUBAQMLC0ZXBohNB61ohX4ClHmEUhABBoVWiEAzB4MrgRaKNY9zhnaQGi4 X-IPAS-Result: AkQDAOi7l1OFBoIFnGdsb2JhbABZrzUGmRIBgR4PAQEBAQEIFAk8hAMBAQQBOgYDATUBAQMLC0ZXBohNB61ohX4ClHmEUhABBoVWiEAzB4MrgRaKNY9zhnaQGi4 X-IronPort-AV: E=Sophos;i="5.01,455,1400018400"; d="scan'208";a="66637818" Received: from rabbit.math.nagoya-u.ac.jp (HELO mailhost.math.nagoya-u.ac.jp) ([133.6.130.5]) by mail3-smtp-sop.national.inria.fr with ESMTP; 11 Jun 2014 04:20:52 +0200 Received: from mailhost.math.nagoya-u.ac.jp (localhost [127.0.0.1]) by mailhost.math.nagoya-u.ac.jp (Postfix) with ESMTP id B155263CF; Wed, 11 Jun 2014 11:20:47 +0900 (JST) Received: from mailhost.math.nagoya-u.ac.jp (localhost [127.0.0.1]) by mailhost.math.nagoya-u.ac.jp (Postfix) with ESMTP id 65B7C41D4; Wed, 11 Jun 2014 11:20:47 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=math.nagoya-u.ac.jp; h= subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=alpha; bh=JFL3AwIH8w68IxycRvJ4JDT1aLo=; b=0X3SsvLpcmBpDLTq0SHGhBX1Rfbg su72K76EPDod3FIHbTjrdcuMd8NoS8iwVu0YFLnfJbibCIINcQ2X6xQTdZZ+MmcF QXvZEROz7cUZ1boVtVD39RUjnNxRL1t6cFW1ii0GPWt+9OiRZI6uNH3MSzxuSbWx 29fO0qBmzXr5+fM= DomainKey-Signature: a=rsa-sha1; h=Received:Subject:Mime-Version:Content-Type:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer; b=xhnVzLm6LOfUjU6qrCC2OBtebkeI4pLsfProrSdAg40S2BWpJzD7PZx4q3Eo8OgQvTpSyaSUNN/bsUyEeKuFDm//QDN11IDiqGYnTGAREt08eEC4kunkoo8Rs+9ldBZxkGEe+21LNF9es+UdGvMBzfy+/DO6in9uQIuERSBvbcs=; c=nofws; d=math.nagoya-u.ac.jp; q=dns; s=alpha Received: from [192.168.1.212] (bsdserver10-alias1.math.nagoya-u.ac.jp [172.16.62.1]) by mailhost.math.nagoya-u.ac.jp (Postfix) with ESMTPSA id B999641D3; Wed, 11 Jun 2014 11:20:46 +0900 (JST) Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.2\)) Content-Type: text/plain; charset=us-ascii From: Jacques Garrigue In-Reply-To: Date: Wed, 11 Jun 2014 11:20:44 +0900 Cc: OCaml Mailing List Content-Transfer-Encoding: quoted-printable Message-Id: <89099A42-D20A-40E9-B210-C493DB1068CF@math.nagoya-u.ac.jp> References: To: Jordan W X-Mailer: Apple Mail (2.1878.2) Subject: Re: [Caml-list] Row-polymorphic type declarations Others answered your questions, but they have missed what I think is probab= ly just a typo: On 2014/06/10 03:50, Jordan W wrote: > 4. It appears there are two ways to write the row-polymorphic type annota= tion: > type 'a t =3D ([> `Red ] as 'a) and type 'a t constraint 'a =3D [> `Red ]= . Why are there two ways and what are the advantages? type 'a t =3D ([> `Red ] as 'a) and type 'a t =3D 'a constraint 'a =3D [> `= Red ] are equivalent, where the parameter is just a trick to allow a row variable inside a defini= tion, but type 'a t constraint 'a =3D [> `Red ] is an abstract type, whose parame= ter is constrained, so it is different from any other type. Jacques=