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 ESMTP id 492EC5D5 for ; Thu, 17 Jan 2019 09:59:40 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.56,488,1539640800"; d="scan'208";a="364476845" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 17 Jan 2019 10:59:14 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id E551882569; Thu, 17 Jan 2019 10:59:14 +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 6795F7FEFC for ; Thu, 17 Jan 2019 10:59:01 +0100 (CET) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=yallop@gmail.com; spf=Pass smtp.mailfrom=yallop@gmail.com; spf=None smtp.helo=postmaster@mail-it1-f180.google.com IronPort-PHdr: =?us-ascii?q?9a23=3AVQbbDxY6JXXw1U2jiDzdF2f/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZoMW5bnLW6fgltlLVR4KTs6sC17KG9fi4EUU7or+5+EgYd5JNUxJXwe?= =?us-ascii?q?43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRp?= =?us-ascii?q?OOv1BpTSj8Oq3Oyu5pHfeQpFiCa+bL9oMBm6sRjau9ULj4dlNqs/0AbCrGFSe+?= =?us-ascii?q?RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG81/9HktQPC?= =?us-ascii?q?TQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUjm58axlVAHnhz?= =?us-ascii?q?sGNz4h8WHYlMpwjL5AoBm8oxBz2pPYbJ2JOPZ7eK7WYNEUSndbXstJWCNBDIGz?= =?us-ascii?q?YYsBAeQCIOhWsZXyqkASrReiHwSgGP/jxiNKi3LwwKY00/4hEQbD3AE4G9wBrm?= =?us-ascii?q?7Uo8vwNKYSTOu6zrPHzTHHb/NRwTf29Y/FcxA7rvGIWbJwdtLRxFIgFwPAlFqQ?= =?us-ascii?q?qIjlMymJ2eQKtmiW9uxtXv+hhW4grgF+uDmvxsE0h4nGh4IV1lDE9Thiz4ovOd?= =?us-ascii?q?K4T0t7bNi5G5VTryGXL5V6Tt8mTm1yuys3yqcKtYO6cSUL0pgr2h3SZ+CBfoOV?= =?us-ascii?q?+BzsTvyRLi19hH99eLKwmRKy8U+4x+35TMa00VJKojNEktnQq3wBzhLT5tWER/?= =?us-ascii?q?dh5Euh1jGP1wfc6uFAP084j7bUK5kkwrIol5oTt1rMHjPulUnokKObcl8o9+uo?= =?us-ascii?q?5uj9f7nrp56RO5Vphgz9Lqgigsm/Dv45MggKUWib4+O81Lj78Ez5WrpKivk2kq?= =?us-ascii?q?7BsJ3BKsQbo7S2Aw5R0oo59xm/CDKm3MwCnXYbNFJFZA6Hj4/xNl7SOv/4CPO/?= =?us-ascii?q?j02okDdq3PDGIqbsAo7NL3jGiLfuZ6xx609ayAopzNBQ/YhYCr8bIKG7Zkikn9?= =?us-ascii?q?zCDwQlNBS0zvyvOtR4044EXGuJBOfNO6PIsESU4fovLvOka4oYojL8Lb4p6qi9?= =?us-ascii?q?o2U+nAo/cLOk2IpfWXm8GvN+axGIaH7ohc8pHmIDvw54R+vv3g7RGQVPbmq/Cv?= =?us-ascii?q?pvrgowD5irWMKaHtj00e6xmRyjF5gTXVhoT1WFEHPmbYKBAq5eZyebI8snmTsB?= =?us-ascii?q?B+H4F90RkCq2vQq/8IJJa/LO83RB553m3dlxoebUkENqrGEmP4Gmy2iIClpMsC?= =?us-ascii?q?YISjsxhv4tpEV8zhKCzfE9jaUITZpc4PRGVgp8PpnZnbR3?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AJAQDmUEBcf7SmVdFjHAEBAQQBAQcEA?= =?us-ascii?q?QGBVAQBAQsBgmlPMyeEAYN7kAGCDYoihFGLBg0jhEkCglQaBwEEMwYNAQMBAQI?= =?us-ascii?q?BAQEBARMBAQkLCwgnJQyCOikBgmcBAgMjBBkBGx0BAwwGBQsNAgImAgIiAREBB?= =?us-ascii?q?QEcBhMIgxuBaAEDFQ+fEjyLG3wWBQEXgngFgTEBgxAKGScNXoE3AgEFEnmLNBe?= =?us-ascii?q?Bf4ERgxKDHgKEaoJXAqIQCYciinEYkguOGn6LZw8hgTuBeDMaCBsVOzGCO4Ibg?= =?us-ascii?q?26KU0IwizMBAQ?= X-IPAS-Result: =?us-ascii?q?A0AJAQDmUEBcf7SmVdFjHAEBAQQBAQcEAQGBVAQBAQsBgml?= =?us-ascii?q?PMyeEAYN7kAGCDYoihFGLBg0jhEkCglQaBwEEMwYNAQMBAQIBAQEBARMBAQkLC?= =?us-ascii?q?wgnJQyCOikBgmcBAgMjBBkBGx0BAwwGBQsNAgImAgIiAREBBQEcBhMIgxuBaAE?= =?us-ascii?q?DFQ+fEjyLG3wWBQEXgngFgTEBgxAKGScNXoE3AgEFEnmLNBeBf4ERgxKDHgKEa?= =?us-ascii?q?oJXAqIQCYciinEYkguOGn6LZw8hgTuBeDMaCBsVOzGCO4Ibg26KU0IwizMBAQ?= X-IronPort-AV: E=Sophos;i="5.56,488,1539640800"; d="scan'208";a="292237089" Received: from mail-it1-f180.google.com ([209.85.166.180]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 17 Jan 2019 10:59:00 +0100 Received: by mail-it1-f180.google.com with SMTP id h65so364249ith.3 for ; Thu, 17 Jan 2019 01:59:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dOhQjymHGWXBCBjWSK9/Pdd33UYbZN2Xun8lF+EBWmM=; b=TfKsVPeB/TR8m/ybV9eXXwSkd7RQU5W7i61FyvHWHTSUigE6lkJNyK/lBhSVW44MVV QIwjtgRkBT2iwXfAE2HNXLMt22kASIgVN9/2WC11M/Ye7gAgvzW4AwzDLR0XVMtHOVsD tO+7s8epMmkWMc+BG3eHfwnZvngqZ1hZiUxlvQ/bFd9pQxV7w9c4RPfY8pzOEtIjeDGH jQsSrfvELuxnRouMXD+DugQgp+CwvG3Kq5mCuESQ4fjz2wDPH82O8Up2rVzCzRlHPpQ+ 8pkEV02Y9vsMSAPmGN9kFGz6YVO0opgoD8e3gQHFoVVtvCxa/kq0e2+PSsWyEtfGoU3N nFYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dOhQjymHGWXBCBjWSK9/Pdd33UYbZN2Xun8lF+EBWmM=; b=rwT5CBnULBJy+7wFzhWJyLdYGe782+ooOdnB+hNt7fV/2nl4zhuTmlijitwphAezc5 pp92BFNUN/4FhXqCo7vJ+KhE+9fxN9DUymRcQhQwlmfalKZJYWy5vHQmMsCVIuBGDURb Wpyhv08Drk8s69BqfENEZhBogMH3/Z1sgnZVgpdAleDOWFRC4MsZeiKvK24ulo0rdyMt 4InfwP2GQbkqvbVdRVMNOa5XY5eLgWsCIVhtjRQWPkaR0oAMCSZ9DlV+BBNq54O9l5ko lfR3Z5keF6RD0q0j8Rl7abFrVNtaBAHYG4WDIiRjIZw8Wct3erFp9GBliDL064WB7l9M AqkQ== X-Gm-Message-State: AJcUukfQCNfvJrIHe3AtSDSMVxvvwedwJ5fxIaE3txaBZAJwbXUs7RAL gT0PlCsK4bbVXp7p8oJqR0PcEP7ByWXRMwP0/F0Ma26WceQ= X-Google-Smtp-Source: ALg8bN6XsylGmnm1n8ibDkQpWRJqaVL3TgAm3OnoV2ctU4R5qvR8ag0VfB6vjIWlraT1yiu4eEZXep4hv+8ETjOOOHY= X-Received: by 2002:a24:2b81:: with SMTP id h123mr2184013ita.16.1547719138794; Thu, 17 Jan 2019 01:58:58 -0800 (PST) MIME-Version: 1.0 References: <20190117104611.3288dd5a@mortimer.gmerlin.de> In-Reply-To: <20190117104611.3288dd5a@mortimer.gmerlin.de> From: Jeremy Yallop Date: Thu, 17 Jan 2019 09:58:46 +0000 Message-ID: To: Christopher Zimmermann Cc: Caml List Content-Type: text/plain; charset="UTF-8" Subject: Re: [Caml-list] matching GADT option types Reply-To: Jeremy Yallop X-Loop: caml-list@inria.fr X-Sequence: 17307 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: On Thu, 17 Jan 2019 at 09:46, Christopher Zimmermann wrote: > why does the f type correctly while g fails to type? > > Christopher > > type 'a t = > | A : unit t > > let f = > fun (type a) ~(p :a t option) () -> match p with > | Some A -> () > | None -> () > > let g = > fun (type a) ~(p :a t option) () -> match p with > | Some A (* TYPING ERROR HERE *) > | None -> () > > Error: This pattern matches values of type unit t > but a pattern was expected which matches values of type a t > Type unit is not compatible with type a GADT matching under or-patterns isn't currently supported in the current release. However, the following PR added some support, and your code is now accepted with the trunk compiler: Allow GADT constructors to introduce equations and existential types under or-patterns https://github.com/ocaml/ocaml/pull/2110 -- Caml-list mailing list. Subscription management and archives: https://sympa.inria.fr/sympa/arc/caml-list https://inbox.ocaml.org/caml-list Forum: https://discuss.ocaml.org/ Bug reports: http://caml.inria.fr/bin/caml-bugs