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 2F0CF7FA83 for ; Fri, 14 Apr 2017 20:47:11 +0200 (CEST) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=mandrykin@ispras.ru; spf=Pass smtp.mailfrom=mandrykin@ispras.ru; spf=None smtp.helo=postmaster@smtp.ispras.ru Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of mandrykin@ispras.ru) identity=pra; client-ip=83.149.199.196; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="mandrykin@ispras.ru"; x-sender="mandrykin@ispras.ru"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of mandrykin@ispras.ru designates 83.149.199.196 as permitted sender) identity=mailfrom; client-ip=83.149.199.196; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="mandrykin@ispras.ru"; x-sender="mandrykin@ispras.ru"; 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@smtp.ispras.ru) identity=helo; client-ip=83.149.199.196; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="mandrykin@ispras.ru"; x-sender="postmaster@smtp.ispras.ru"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3ALAu0wRytO883HwDXCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?1OwSIJqq85mqBkHD//Il1AaPBtSHraocw8Pt8InYEVQa5piAtH1QOLdtbDQizf?= =?us-ascii?q?ssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1?= =?us-ascii?q?JuPoEYLOksi7ze6/9pncbglSmDaxfa55IQmrownWqsQYm5ZpJLwryhvOrHtIeu?= =?us-ascii?q?BWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbO?= =?us-ascii?q?SxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDtU7s6RSqt4LtqSB/wiS?= =?us-ascii?q?cIKTg58H3MisdtiK5XuQ+tqwBjz4LRZoyeKfhwcb7Hfd4CRWRPQNtfWSJCDIyy?= =?us-ascii?q?bYQPAeUOM+lEoITmu1sOtAGzCRWwCO7uyDJFgGL9060g0+QmFAHLxAsuH9MNsH?= =?us-ascii?q?TUttr1NaMSWv2ywqbSyzXMculW2Df+6IjJdBAqvPaBXbdqfsrX1EYvDQPEjlaR?= =?us-ascii?q?qYzjJD6V1/8Ns3CB7+V6TuKjkXQnqxxorzWp28wiiZHJi5oWx13K7yl13Yk4KN?= =?us-ascii?q?miREJmZdOpFIFcuzyeOoZ3RM4pXntmtzwgyrIcvJ62ZCgKx4ojxx7Yc/GHaI2I?= =?us-ascii?q?4g77VOqLIDd4n2pleKiliBap60Sg0PD8WtG10FZMsCVFjsHBu3MD2hDJ98SKRf?= =?us-ascii?q?9w8l281TuL0w3f8PxILEQ1mKbDLp4u2L8wlp4dsUTZGS/2nV37jKqMeUUi5+eo?= =?us-ascii?q?8eTmYrbnpp+aLIJ0ixr+Mrw0msOlGuQ0KBIOX3WD9eSmyLLj5VH5QKlNjvAujq?= =?us-ascii?q?bWqpXaJcACqq69Ag9VyZoj5g2kDzam1dQYhWMIIEhEeBKBlYjpOkvBLOr2Dfel?= =?us-ascii?q?0ByQl2JVxvbNM7v9SrfEJWHenaypKah87UVRzhYb09FZ7J9SFvQDKfnqR0Lq8t?= =?us-ascii?q?rVEklqHRazxrPCCdZ934IaEUeGBKODIaDTtxfc4+spL/OdZ44TkDfmM+Is/Lj0?= =?us-ascii?q?kClqyhcmYaC10M5POziDFfN8LhDcOCK0jw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ABNgAwGPFY/8THlVNcHQEFAQsBGQYMi?= =?us-ascii?q?HqLCJBqjGVHikGDOoJqAoRCFAEBAQEBAQEBAQEBaiiCMyIBgkABBSMEUhAJAhg?= =?us-ascii?q?CAgUhAgIPAUcGii6LRZ1dgWw6ixQBCwElgQuKO4RXgwaCXwEEkHGMJpRMAYhxh?= =?us-ascii?q?m2UCjYhgQVDL0eGZD2JfQEBAQ?= X-IPAS-Result: =?us-ascii?q?A0ABNgAwGPFY/8THlVNcHQEFAQsBGQYMiHqLCJBqjGVHikG?= =?us-ascii?q?DOoJqAoRCFAEBAQEBAQEBAQEBaiiCMyIBgkABBSMEUhAJAhgCAgUhAgIPAUcGi?= =?us-ascii?q?i6LRZ1dgWw6ixQBCwElgQuKO4RXgwaCXwEEkHGMJpRMAYhxhm2UCjYhgQVDL0e?= =?us-ascii?q?GZD2JfQEBAQ?= X-IronPort-AV: E=Sophos;i="5.37,199,1488841200"; d="scan'208";a="269126856" Received: from bran.ispras.ru (HELO smtp.ispras.ru) ([83.149.199.196]) by mail2-smtp-roc.national.inria.fr with ESMTP; 14 Apr 2017 20:47:10 +0200 Received: from molnar.localnet (molnar.intra.ispras.ru [10.10.2.183]) by smtp.ispras.ru (Postfix) with ESMTP id E3ADA6129B; Fri, 14 Apr 2017 21:47:09 +0300 (MSK) From: Mikhail Mandrykin To: Vincent Jacques Cc: caml-list@inria.fr Date: Fri, 14 Apr 2017 21:47:09 +0300 Message-ID: <3147640.9aH54fEQfF@molnar> User-Agent: KMail/5.1.3 (Linux/4.4.0-70-generic; KDE/5.18.0; x86_64; ; ) In-Reply-To: <2493165.Qrs57diDXJ@molnar> References: <2493165.Qrs57diDXJ@molnar> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" Subject: Re: [Caml-list] Typing of recursive function with polymorphic variants On =D0=BF=D1=8F=D1=82=D0=BD=D0=B8=D1=86=D0=B0, 14 =D0=B0=D0=BF=D1=80=D0=B5= =D0=BB=D1=8F 2017 =D0=B3. 21:11:52 MSK Mikhail Mandrykin wrote: > the desired type ([< `A of 'a | `B ] as 'a) -> [> `B] > val f2 : ([< `A of 'a | `B ] as 'a) -> [ `B ] =3D Actually, one more polymorphic variable: let rec f2 : 'a 'b. ([<`A of 'a | `B ] as 'a) -> ([>`B] as 'b)=3D function | `A x -> f2 (f2 x) | `B -> `B;; val f2 : ([< `A of 'a | `B ] as 'a) -> [> `B ] =3D --=20 Mikhail