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 c5ff346549e7 (Postfix) with ESMTPS id C8E475D5 for ; Thu, 5 Dec 2019 11:04:31 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.69,281,1571695200"; d="scan'208";a="417857862" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 05 Dec 2019 12:04:30 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id C66F07F345; Thu, 5 Dec 2019 12:04:30 +0100 (CET) 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 3427A7F332 for ; Thu, 5 Dec 2019 12:04:26 +0100 (CET) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=octa@polychoron.fr; spf=Pass smtp.mailfrom=octa@polychoron.fr; spf=Pass smtp.helo=postmaster@quaesituri.org IronPort-PHdr: =?us-ascii?q?9a23=3Ah30fZhxQtkCoEibXCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?1OsTIJqq85mqBkHD//Il1AaPAdyArasU0qGM6OjJYi8p2d65qncMcZhBBVcuqP?= =?us-ascii?q?49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6?= =?us-ascii?q?JvjvGo7Vks+7y/2+94fcbglVijexe65+IRaroQneqMUbj5ZpJ7osxBfOvnZGYf?= =?us-ascii?q?ldy3lyJVKUkRb858Ow84Bm/i9Npf8v9NNOXLvjcaggQrNWEDopM2Yu5M32rhbD?= =?us-ascii?q?VheA5mEdUmoNjBVFBRXO4QzgUZfwtiv6sfd92DWfMMbrQ704RSiu4qF2QxLulS?= =?us-ascii?q?wJNSM28HvPh8JtkqxbrhKvqR9xzYHab46aNuZxcKzGcNMGRmdMRNpdWzBPD468?= =?us-ascii?q?aYYEEuoPPfxfr4n4v1YArR++BQ62BOPu0DBIgGL90LE80+QuDw7G2BIvH84SsH?= =?us-ascii?q?TVsd74M6ASXvypzKbS1jjDd/RW2TP96YfUchAhpuuMXbV2ccbLx0kvDRrIg1ON?= =?us-ascii?q?ooLmJzOYzuQAv3KG4+dkVO+jkWwqpxtxrzSy3ssgl5fFi4EPxl3A+yh12oc4KN?= =?us-ascii?q?KiREJmfdKpE51dvDyAOYRsWMMtWWRotT46yrIYvZ67ezAHyI06xxHFdfOHaImI?= =?us-ascii?q?4g7+VOaLIDd0nnVleKiwhxqq8EigzPPzVtWs3VtKtCZJj93Bu3EX2xHR8MSKSu?= =?us-ascii?q?Zx8l+k2TmV1gDT7u9EIVozlareM5MhxaI/loYJvknYBi/2n0H2ja+KeUUk/eio?= =?us-ascii?q?8ePnYrP8qp+SLY94khv+Pbg2msyjHeQ4NRADUHSB9uS50L3v5En5QLRRjv0qia?= =?us-ascii?q?TZq5DbJcEDpqGjGQNV04Aj6wy+Dzi8ytgYk2MHfxp5f0eMho3tflXPO+zQDPGl?= =?us-ascii?q?gl3qni046erBO+jPBpLXL3HF2J7ncrt55lJAyUJnyttD7rpMDbUQK/L0QEj38t?= =?us-ascii?q?LCWExqezeoyvrqXY0unrgVXniCV/fAbPHi9GSQ7+dqGNGiIZcPsW+geeAi4+/l?= =?us-ascii?q?jXgjnllbc7P7hcJKOkD9JexvJgCiWVSpgtoFFj5U7BMjReHxiUGfSz8VYGy9Df?= =?us-ascii?q?tlt2MLTbm+BIKGfbiDxbmI3SO1BJpTPz0UEleIAHzocJ+DXbECcnDLLw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0A0OADM4+hd/zMHxAVlgkaCHoFBMiqTP?= =?us-ascii?q?VQGhSOFfY9KgXoJAQMBDCwBAgEBhEACCIIKHQYBBDcDDQIQAQEEAQEBAgECAwQ?= =?us-ascii?q?BbIU3DII7IoJ2BicLAQUIAQE4DwtGVxMIAQGDHoJTJQSveTOCfgEBBYJKhGoJg?= =?us-ascii?q?TeMFhp5gQeBOIJsPoUWhSGuToFEdJVUIYIxjBaLX6kVgXwDDCqBLk0nETuCbFA?= =?us-ascii?q?RFJVthUBAM4EDAZBkAQE?= X-IPAS-Result: =?us-ascii?q?A0A0OADM4+hd/zMHxAVlgkaCHoFBMiqTPVQGhSOFfY9KgXo?= =?us-ascii?q?JAQMBDCwBAgEBhEACCIIKHQYBBDcDDQIQAQEEAQEBAgECAwQBbIU3DII7IoJ2B?= =?us-ascii?q?icLAQUIAQE4DwtGVxMIAQGDHoJTJQSveTOCfgEBBYJKhGoJgTeMFhp5gQeBOIJ?= =?us-ascii?q?sPoUWhSGuToFEdJVUIYIxjBaLX6kVgXwDDCqBLk0nETuCbFARFJVthUBAM4EDA?= =?us-ascii?q?ZBkAQE?= X-IronPort-AV: E=Sophos;i="5.69,281,1571695200"; d="scan'208";a="331449481" X-MGA-submission: =?us-ascii?q?MDHeUjqFNRClBKSrZXh30w9rnTeXphdvFI5yGG?= =?us-ascii?q?Ki5BPqPdx9/knXDAaq+3kZevbJx9HicucwPy3IKkmb4u4+5glemTb8i7?= =?us-ascii?q?1fY76NX4XR+10N7oMtpqkuP1GZ6boayy/rUrMcSGm1JIu/OZUAcUUD1u?= =?us-ascii?q?ANFfOSoeamH/n5kv4bK7V6DQ=3D=3D?= Received: from quaesituri.org ([5.196.7.51]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Dec 2019 12:04:25 +0100 Received: from [128.93.64.108] (bursa.paris.inria.fr [128.93.64.108]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by quaesituri.org (Postfix) with ESMTPSA id B193910FA50 for ; Thu, 5 Dec 2019 12:04:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.quaesituri.org; s=mail; t=1575543881; bh=F+T0XNJS9SJB91Mtotkc72qjba8fl31C5JN2cw4JuLQ=; h=Subject:To:References:From:Date:In-Reply-To; b=awnaqCnPeON63uSAr8PG+1oUnLxgpls27iftU6KLIUpQYtZZY8yimvg67vxbqri+I k2jHQO1noYl3r9x/HiHvt3w6vXleEb9Sat0EEqx6AxB9krpAe4tUGG4bo80BbmVcEM 3U/pZcBJS+KNNmXGXN9tERqqwc1qg/nuZZR7BZrw= To: caml-list@inria.fr References: <20191203215048.GA80518@mortimer.gmerlin.de> From: Florian Angeletti Message-ID: <29e212ec-b7c5-ae14-66e9-090fe409c735@polychoron.fr> Date: Thu, 5 Dec 2019 12:04:23 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.1 MIME-Version: 1.0 In-Reply-To: <20191203215048.GA80518@mortimer.gmerlin.de> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Subject: Re: [Caml-list] Polymorphic variant subtyping riddle Reply-To: Florian Angeletti X-Loop: caml-list@inria.fr X-Sequence: 17896 Errors-to: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Hi, The meaningful difference here is that the type `safe` and `base` are recursive. It is not particularly clear, but the second part of the error message is complaining about the difference of type in the argument of `List. Typically, if your example is extended to:     type safe = [ `A of safe | `B | `C ]     type basic = [ `A of basic | `B ]     let basic :basic = `A `B     let of_safe :safe -> char = function        | `A _ -> 'a'        | `B -> 'b'        | `C -> 'c'     let relaxed = (of_safe : safe -> char :> [< safe ] -> char)    let x = relaxed (basic :> safe) Then the coercion becomes necessary too. — octachron.