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 8397C7FA83 for ; Sat, 15 Apr 2017 10:23:48 +0200 (CEST) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jacquev6@gmail.com; spf=Pass smtp.mailfrom=jacquev6@gmail.com; spf=None smtp.helo=postmaster@mail-qk0-f181.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of jacquev6@gmail.com) identity=pra; client-ip=209.85.220.181; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jacquev6@gmail.com"; x-sender="jacquev6@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of jacquev6@gmail.com designates 209.85.220.181 as permitted sender) identity=mailfrom; client-ip=209.85.220.181; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jacquev6@gmail.com"; x-sender="jacquev6@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-qk0-f181.google.com) identity=helo; client-ip=209.85.220.181; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jacquev6@gmail.com"; x-sender="postmaster@mail-qk0-f181.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3A6b3W/xwpmf/rdQjXCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?2+4QIJqq85mqBkHD//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+tqwBjz4LRZoyeKfhwcb7Hfd4CR2VBUMZfWSJCDI2h?= =?us-ascii?q?cYUAE+UPMP1Er4nkvVYCsQeyCRWuCe7p1zRGhmX23ao/0+k5Hg7G3QogEM4Qv3?= =?us-ascii?q?TSsNX+KaMcXvqpw6nR0DXMcehW0ir65YjWcxAhp+2DUqx2ccrN0kQvCQLFjlOM?= =?us-ascii?q?poP7OTOVyv0Bs2qB4OV8TOKvlnAoqxprrjip2MgslpDEi4QIwV7K8iV5xZw6Jd?= =?us-ascii?q?y+SENjf96kEZ1QuD2EOItwXsMuWmNotzwmxb0fpJ60YjMKxI4hxxHBd/yKdZWD?= =?us-ascii?q?7BH7VOuJPzt0mHZodKi8ihuy60Ss1PPwWtWu3FpXrSdJj9/BvW0X2RPJ8MiIUP?= =?us-ascii?q?5981+h2TmR0wDT7flJIUUumqraL54t26cwlpkPvUjaEC/6hUb7gLKMekUr/eio?= =?us-ascii?q?7OvnYrH4qZOGK4B0jQT+Prwvmsy5H+s4LhADU3aH9em4zrHu/k30TK9UgvEojq?= =?us-ascii?q?XVqo3WKMcGqqKhBg9ayIcj6xKxDze819QYmGEKLFBfdx2blojpJk/BIO75APqk?= =?us-ascii?q?jFSslS1kx/HCPrH7HprNKX3DnK/7fblh805c1BYzzddH6p1IEL4BJfbzVlb1tN?= =?us-ascii?q?zZFR85Lxe5w/3nCdV4zoMRQ3iDAq6fMKPIsF+H/PgjI+eWZNxdhDGoDvkm5/fv?= =?us-ascii?q?iTcckFkRZ7iq3J1fPHWxGPh8MkaYZ1Ltmc8bGHxMpBdoH8Lwj1jXbz9VbHu0Q+?= =?us-ascii?q?oe7zoiFY+9RdPdR4amjbqd9Dm6GJZbYHwDCFmHCGrlbMOCVutaO3HaGdNojjFR?= =?us-ascii?q?DevpcIQmzxz78Vaik7c=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0B1AADG1/FYhrXcVdFdHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBhAmBCweDX7QJhXIKg3oHQxQBAQEBAQEBAQEBARIBAQEICwsIKC+?= =?us-ascii?q?CMyIBgkAGIwQZATgBAwwBBQULDwImAgIiEgEFARwGExuJZAMVnGU/jASBbDqDC?= =?us-ascii?q?QWDdycNg1gqAgYSeYM3gR2FaIRXgwaCXwEEnRuHBIthan2PX5JCFB+BFTaBJiY?= =?us-ascii?q?dCCMKRBgGgm+BCUGCED41iUgBAQE?= X-IPAS-Result: =?us-ascii?q?A0B1AADG1/FYhrXcVdFdHAEBBAEBCgEBFwEBBAEBCgEBhAm?= =?us-ascii?q?BCweDX7QJhXIKg3oHQxQBAQEBAQEBAQEBARIBAQEICwsIKC+CMyIBgkAGIwQZA?= =?us-ascii?q?TgBAwwBBQULDwImAgIiEgEFARwGExuJZAMVnGU/jASBbDqDCQWDdycNg1gqAgY?= =?us-ascii?q?SeYM3gR2FaIRXgwaCXwEEnRuHBIthan2PX5JCFB+BFTaBJiYdCCMKRBgGgm+BC?= =?us-ascii?q?UGCED41iUgBAQE?= X-IronPort-AV: E=Sophos;i="5.37,203,1488841200"; d="scan'208";a="269164209" Received: from mail-qk0-f181.google.com ([209.85.220.181]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 15 Apr 2017 10:23:47 +0200 Received: by mail-qk0-f181.google.com with SMTP id d131so79382222qkc.3 for ; Sat, 15 Apr 2017 01:23:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-transfer-encoding; bh=nZfsbzSPXVQmdNZlb8r3JfR0bMHkmx8LYXwM8EnKIF4=; b=FG74gHHhqm8MNFupXN4efkbgGq/YTzAbgi+BAT/gY+ERPzg/co0A/ijSEw290CtD98 H3xoq2mwqn3dyuo89nPysnH5zElIECrYlZiDvR+Lx7zqAPIbCf+iHkqPdr0EYu9BHpxk vlxompNMLeCS/3HdCjdP4wjUpi1yCTHvGpbJjx40DpSrEMGRtrdVqMbc9tfY7hGz61MZ Px02pAMvJCtepXehw2E5zs/jhviStuhT/KuUHUFLP/0exIxNL08e5Yfk3C9mdq9a6dDZ Z+txpbn8ISAr4j/H+2ZMqkIvZTBDBPx3ypUwV5ER0uZun9mWtPhFFAQ8fFzh+mVH3OxL XtnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-transfer-encoding; bh=nZfsbzSPXVQmdNZlb8r3JfR0bMHkmx8LYXwM8EnKIF4=; b=EtJkD3SKnIphE0iF1oj8GiorKxbFhE1ExUHEGQotiIOJ754t5s0NYTnbWiG2urYLhn C8z9Vlz8vE1/+gytBFRc1+TdP9oDR9LO6+pKLBRpHL2alyfMszCJ/Pl7bOnNAFo+BKbU 8BvAG9JpB07aBR3Tdumlk9lHuH/4qD5vg5PGj08k06qzd7MGX3NbPek7M8w6Qtk4c/VP 9dG+cKldj5egLWx3/5KyNVYuGZV2LB9JqUoHqPYGIWpDj+3NvhNnQseUzsS0nx7oD/jh gS+E0t/L/KK+YjN81Ntgtskquuvj/1j6LacVO4/a+5BgzKZJ9iYU6tYjqXjihKmsI0H8 Fsyw== X-Gm-Message-State: AN3rC/6RVm8UMWGM2mOX3h8cPfDknN+3m3YoymTdrTdH9Fk1Ls2the/X CuuAXhqeNR1zoKKs7GiTz0bxK2AcUQ== X-Received: by 10.55.19.16 with SMTP id d16mr1101299qkh.142.1492244626648; Sat, 15 Apr 2017 01:23:46 -0700 (PDT) MIME-Version: 1.0 Sender: jacquev6@gmail.com Received: by 10.55.76.215 with HTTP; Sat, 15 Apr 2017 01:23:46 -0700 (PDT) In-Reply-To: <3147640.9aH54fEQfF@molnar> References: <2493165.Qrs57diDXJ@molnar> <3147640.9aH54fEQfF@molnar> From: Vincent Jacques Date: Sat, 15 Apr 2017 10:23:46 +0200 X-Google-Sender-Auth: jX8dJJdA_lvkjcOJxrEEAUHPAfw Message-ID: To: Mikhail Mandrykin Cc: caml users Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Validation-by: vincent@vincent-jacques.net Subject: Re: [Caml-list] Typing of recursive function with polymorphic variants 2017-04-14 20:47 GMT+02:00 Mikhail Mandrykin : > 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 Thank you Mikhail, this helps a lot. I didn't know about polymorphic type annotations. Thanks! --=20 Vincent Jacques http://vincent-jacques.net "S'il n'y a pas de solution, c'est qu'il n'y a pas de probl=C3=A8me" Devise Shadock