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 sympa.inria.fr (Postfix) with ESMTPS id 3FF3E800C2 for ; Thu, 9 Feb 2017 16:16:03 +0100 (CET) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=agarwal1975@gmail.com; spf=Pass smtp.mailfrom=agarwal1975@gmail.com; spf=None smtp.helo=postmaster@mail-io0-f195.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of agarwal1975@gmail.com) identity=pra; client-ip=209.85.223.195; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="agarwal1975@gmail.com"; x-sender="agarwal1975@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of agarwal1975@gmail.com designates 209.85.223.195 as permitted sender) identity=mailfrom; client-ip=209.85.223.195; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="agarwal1975@gmail.com"; x-sender="agarwal1975@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-io0-f195.google.com) identity=helo; client-ip=209.85.223.195; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="agarwal1975@gmail.com"; x-sender="postmaster@mail-io0-f195.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3A/bNgfhcl+KaDG9YG544G9Ug0lGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxc67bR7h7PlgxGXEQZ/co6odzbGH7+awBCdcv97B6ClEK8McEUddyI?= =?us-ascii?q?0/pE8JPo2sMQXDNvnkbig3ToxpdWRO2DWFC3VTA9v0fFbIo3e/vnY4ExT7Mhdp?= =?us-ascii?q?dKyuQtaBx+z+7e25+oXSbgNUn3L9JOoqdFTl5TnW4+wfm5djLO4dxz7Epn9PM7?= =?us-ascii?q?BTzHl0JFSfkhPx4sO31JFm+iVU/fkm8pgTf7/9evERVrxZFzRuGm88/tLisVGX?= =?us-ascii?q?RASG/GQVVjxHzUdgDA3M7RW8VZD05Hip/tFh0TWXaJWlBYs/Xi6vuuIyEEfl?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0C6AACCh5xYf8PfVdFdGwEBAQMBAQEJA?= =?us-ascii?q?QEBFQEBAQECAQEBAQgBAQEBhH8RB4NSnBGNH4ojhiICgmMHQxQBAQEBAQEBAQE?= =?us-ascii?q?BARIBAQkLCwobMYIzBAEWAQSCFgEBAQMBIwQZARsdAQMBCwYFBAcNKgICIQEBE?= =?us-ascii?q?QEFARwGE4lbAQMNCKM5P4wCgWsYBQEcgwkFg1cKGScNVYM1AQEBAQEBBAEBAQE?= =?us-ascii?q?BAQEZAgYSiymCUYUJgl8FgSsBAQGPE4p3LggBAYE4CYw4hBmRBYo0hxgUHoEVN?= =?us-ascii?q?oEfHxMdURdKg1SCKyI1hzCBTgEBAQ?= X-IPAS-Result: =?us-ascii?q?A0C6AACCh5xYf8PfVdFdGwEBAQMBAQEJAQEBFQEBAQECAQE?= =?us-ascii?q?BAQgBAQEBhH8RB4NSnBGNH4ojhiICgmMHQxQBAQEBAQEBAQEBARIBAQkLCwobM?= =?us-ascii?q?YIzBAEWAQSCFgEBAQMBIwQZARsdAQMBCwYFBAcNKgICIQEBEQEFARwGE4lbAQM?= =?us-ascii?q?NCKM5P4wCgWsYBQEcgwkFg1cKGScNVYM1AQEBAQEBBAEBAQEBAQEZAgYSiymCU?= =?us-ascii?q?YUJgl8FgSsBAQGPE4p3LggBAYE4CYw4hBmRBYo0hxgUHoEVNoEfHxMdURdKg1S?= =?us-ascii?q?CKyI1hzCBTgEBAQ?= X-IronPort-AV: E=Sophos;i="5.35,349,1484002800"; d="scan'208,217";a="259585047" Received: from mail-io0-f195.google.com ([209.85.223.195]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 09 Feb 2017 16:15:38 +0100 Received: by mail-io0-f195.google.com with SMTP id c80so2325027iod.1 for ; Thu, 09 Feb 2017 07:15:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=cSU1leiBUOd+S5Jw6vALnRKJLquGGH6h45tQPlAEkzg=; b=TFDJ+WaVE0rvZx/ByZZf0GAAn/mDB+0491pNVLD1vDECmebzogScJpE6+hafvSlYoW w+gU7LZTtFA99ENwK/3fdKGRV5HYni7Eior0eqpG0kK1p7HuZsBkYwJW5vZSns+07pCy D2aLNjVR1iP5shBbyHUvOQ73GGQxHZzP10ME3a0itvf3fwn+YB0ZFwJ+YAI1IaPjcQ6Z fxmZxtkpHHku7rOX4HMoKyEgEd9Syvgy0attffiGFK6DCQgdWRYBJVV/1oMS/3ooJvbG A1aOpyhuudqvBsxyUkGk3axwtyh1EpQ3XTM0Bo80atZs1gwU6k/TuclKSEQKYksPaDUr 3XIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=cSU1leiBUOd+S5Jw6vALnRKJLquGGH6h45tQPlAEkzg=; b=nMEoHftnhHlZR4FB6un+obdwBQe443LR+ubmFwRBTEddo2CL1JZ+v86cCKmn/xZ3xd Ptwl/FGSX62BuvJbNdTjqY/7YJLvAWr1tFzV24cHzI+mB3de8AeL7dOUZwKMThPSGKVi 79W+T6+kAVF4JWNf6hJ1XjWCjoEPOgqscZMMYxBUHPtVaQ40Z3ZBizyohruY3hC1ZpgC vIzpVUGi1L3Faq7NGqRtFcDYslkqYkQzGmw8YCgQHLqRqzcQGPs6Yk0CSbpaYAVQP88r fsDzULWARgjDqHJiHKuonbGiiG8H+JEYJFH0QMxfQ2L/5c0CfGicPtlEmDrb1Bb6RQMA xstA== X-Gm-Message-State: AMke39lnEXBJBQ5+UlOqIH3ieLefykvKx8Od4vmiKRfBQ5YQZKVy27WMlMmSPbj8DFEupaVBFyRXxWfNPkhLgg== X-Received: by 10.107.175.199 with SMTP id p68mr4137951ioo.80.1486653337164; Thu, 09 Feb 2017 07:15:37 -0800 (PST) MIME-Version: 1.0 Received: by 10.36.238.136 with HTTP; Thu, 9 Feb 2017 07:15:16 -0800 (PST) In-Reply-To: References: From: Ashish Agarwal Date: Thu, 9 Feb 2017 10:15:16 -0500 Message-ID: To: Martin DeMello Cc: Jeremy Yallop , "caml-list@inria.fr" Content-Type: multipart/alternative; boundary=001a1144971810e13505481a7417 Subject: Re: [Caml-list] intersections of polymorphic variants --001a1144971810e13505481a7417 Content-Type: text/plain; charset=UTF-8 Also you might want abbreviation patterns. If your `value` type included all `color` values, like this: type value = [color | `Missing] then, you could write: let state_of_value v = match v with | #color as c -> Color (color_index c) | `Missing -> Missing On Thu, Feb 9, 2017 at 5:03 AM, Martin DeMello wrote: > On Thu, Feb 9, 2017 at 1:57 AM, Jeremy Yallop wrote: > >> > >> > let state_of_value v = match v with >> > | `Red | `Blue | `Green -> ????? >> > | `Missing -> Missing >> >> let state_of_value v = match v with >> | (`Red | `Blue | `Green) as c -> Color (color_index c) >> | `Missing -> Missing >> > > perfect, thanks! > > martin > --001a1144971810e13505481a7417 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Also you might want abbreviation patterns. If your `value`= type included all `color` values, like this:

type value= =3D [color | `Missing]

then, you could write:=

let state_of_value v =3D match v with
= =C2=A0 | #color as c -> Color (color_index c)
=C2=A0 | `Missin= g -> Missing

On Thu, Feb 9, 2017 at 5:03 AM, Martin DeMello= <martindemello@gmail.com> wrote:
=
On Thu, Feb 9, 2017 at 1:57 AM, Jeremy Yallop <y= allop@gmail.com> wrote:
>
> let state_of_value v =3D match v with
>=C2=A0 =C2=A0| `Red=C2=A0 | `Blue=C2=A0 | `Green -> ?????
>=C2=A0 =C2=A0| `Missing -> Missing

=C2=A0 let state_of_value v =3D match v with
=C2=A0 =C2=A0 | (`Red=C2=A0 | `Blue=C2=A0 | `Green) as c -> Color= (color_index c)
=C2=A0 =C2=A0 | `Missing -> Missing

perfect, tha= nks!

martin

--001a1144971810e13505481a7417--