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 3800682355 for ; Tue, 23 Jan 2018 21:35:31 +0100 (CET) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=yallop@gmail.com; spf=Pass smtp.mailfrom=yallop@gmail.com; spf=None smtp.helo=postmaster@mail-it0-f48.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of yallop@gmail.com) identity=pra; client-ip=209.85.214.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yallop@gmail.com"; x-sender="yallop@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of yallop@gmail.com designates 209.85.214.48 as permitted sender) identity=mailfrom; client-ip=209.85.214.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yallop@gmail.com"; x-sender="yallop@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-it0-f48.google.com) identity=helo; client-ip=209.85.214.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yallop@gmail.com"; x-sender="postmaster@mail-it0-f48.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AnzV3Dx3ENWoxUHrnsmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?se0VL/ad9pjvdHbS+e9qxAeQG9mDsrQc06L/iOPJYSQ4+5GPsXQPItRndiQuro?= =?us-ascii?q?EopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZv?= =?us-ascii?q?JuTyB4Xek9m72/q99pHPfglEniaxba9vJxiqsAvdsdUbj5F/Iagr0BvJpXVIe+?= =?us-ascii?q?VSxWx2IF+Yggjx6MSt8pN96ipco/0u+dJOXqX8ZKQ4UKdXDC86PGAv5c3krgfM?= =?us-ascii?q?QA2S7XYBSGoWkx5IAw/Y7BHmW5r6ryX3uvZh1CScIMb7Vq4/Vyi84Kh3SR/okC?= =?us-ascii?q?YHOCA/8GHLkcx7kaZXrAu8qxBj34LYZYeYP+d8cKzAZ9MXXWhOXshRWSJPAY2y?= =?us-ascii?q?cpUBAPYaMOZEs4XwvUcCoQeiCQSuAu7k1z9GhmXx3a0/y+kvFR/J3BY+ENILsH?= =?us-ascii?q?Xfsdf6O70WUeCxy6nI1SjIYvRW2Djn7IjIdhchoemXULJ/dMre00gvFwffglqM?= =?us-ascii?q?rozlOiqY2+IQuGaY9+ptTfyjh3Ijpg1roTWixt0ghpfUio8a0FzJ+iZ0zYAoLt?= =?us-ascii?q?OiUkF7e8SrEJ5IuiGaKYR2RsQiTnltuCkgy70GvYe3fCkWyJg73hLfZfOKfouS?= =?us-ascii?q?7hLsU+aRJjh4hHZ7d76lmxmy9k2gxvX9VsmyzllKsjJInsfQun0JzRDe6ciKRu?= =?us-ascii?q?Fj8ku81juDzQ/e5+JcLUAxj6XbKpohwrAqlpoUtETOBi/3l1/yjK+ScUUk4vOl?= =?us-ascii?q?6+viYrr8p5+cM5V4hR35MqQrgsC/G/g3MhASX2iH/uSxzKHs8lf8QLVOl/E2lq?= =?us-ascii?q?jZsIvGJckAva64AwpV0p455BqlDjem1s4YnXgdI15fdhKHlduhB1abC/D1Eb+a?= =?us-ascii?q?nk6wkCYjk/XbJKHhE9PGLnXfuLjkdLd5rUVbzVxg48pY4sd2B6sMJeO7a0b1sN?= =?us-ascii?q?vARksoOgiwxP7PB9B014dYUmWKVPzKeJjOuEOFs7p8a9KHY5UY7XOkc6B8tqze?= =?us-ascii?q?yEQhkFpYRpGHmJ4eaXS2BPNjehzLbn/lg9NHGmAP7FNnEL7azWaaWDsWXE6cGr?= =?us-ascii?q?om72hiWo2jBIbHAIuqhe7ZhXrpLthtfmlDT2u0PzLoeoGDAapebSuTJopgjmRB?= =?us-ascii?q?W+TxDYAm0h6quUnxzL81duc=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BfAwBJnGdahjDWVdFeGwEBAQEDAQEBC?= =?us-ascii?q?QEBAYNpAYEyFBMHg1aZCIIChAGTUoICCoU7AoRvBxkHBDMVAQEBAQEBAQEBAQE?= =?us-ascii?q?SAQEBCAsLCCgvgjgkAYJHAQUjBBkBGx0BAwwGBQsNAgImAgIhAQERAQUBHAYTi?= =?us-ascii?q?hwBAxWmWUCME4FtGAUBHIMLBYNlChknDVmCJAEBAQEGAQEBARwCBhJ9gzyCFYZ?= =?us-ascii?q?tgmtEBIFXgy+CZQWKdIk1jxg9kFiFBZQjjhqJIhQFIIEXNYFzMxoIGxU9MoF4g?= =?us-ascii?q?kUfgXNBN44RAQEB?= X-IPAS-Result: =?us-ascii?q?A0BfAwBJnGdahjDWVdFeGwEBAQEDAQEBCQEBAYNpAYEyFBM?= =?us-ascii?q?Hg1aZCIIChAGTUoICCoU7AoRvBxkHBDMVAQEBAQEBAQEBAQESAQEBCAsLCCgvg?= =?us-ascii?q?jgkAYJHAQUjBBkBGx0BAwwGBQsNAgImAgIhAQERAQUBHAYTihwBAxWmWUCME4F?= =?us-ascii?q?tGAUBHIMLBYNlChknDVmCJAEBAQEGAQEBARwCBhJ9gzyCFYZtgmtEBIFXgy+CZ?= =?us-ascii?q?QWKdIk1jxg9kFiFBZQjjhqJIhQFIIEXNYFzMxoIGxU9MoF4gkUfgXNBN44RAQE?= =?us-ascii?q?B?= X-IronPort-AV: E=Sophos;i="5.46,403,1511823600"; d="scan'208";a="310355899" Received: from mail-it0-f48.google.com ([209.85.214.48]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 23 Jan 2018 21:35:30 +0100 Received: by mail-it0-f48.google.com with SMTP id w14so2534356itc.3 for ; Tue, 23 Jan 2018 12:35:30 -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=gs9m4FhYHJvsBLKCNeIocJH8w2ndzPSxmLGGxBJh0GQ=; b=EzI14WqGR4SkuT2/J/Qx0jgcvjmHW+ZKRrW6dSgnT2c5vR3MAbU87+eqP6cuxMAReT 0q7rY+kGyJ7WaMjC3PbPi5MN+U9g/K7TjDarKdZwr0V5yJLXl4iQxpHiR3WWNtd7M4rU HmelNHVi9rDyfJDVf1H06QMJTWdr5YWA0oW53BO45WF6oA1jnaexPWPJNeKoLz9l+6mr YHePlHgX0Ch7zFVNvgXXlznzZ+cWh6qDALmE7RPCwislZwtcei4fD3GFia4D0mpS58i2 HUggXS6dRd3ahQGTRPQDeP1F7BJjepDck5E8v7J3XxR1E/4pa4R8HnkCv+5axtkqi275 /wOQ== 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=gs9m4FhYHJvsBLKCNeIocJH8w2ndzPSxmLGGxBJh0GQ=; b=tmHd9Zryl3bv4CKNuhLozzRMdjPcWX4/AxVZhTrSkXyYMc85Vje1YYlE31KbuPMddH GlNPfJuMm+NRLaauG0LD4COAdeie2bOdVsVaIO/62i7w9OrutPwIVRuMaB1GVfUyi5vd RC1Yyas8r4f/i+nuhQR/NpE1AFue9LYnXuLoYNbiazIV/e02MWrSVx1bXJgWf7mX6D6q Tk191DBPlc0k1HdyqM0RLnaxQokMhFQPgZpVNjMQ7tsPw4lA2GSTVpeA49D9XOG6t+Q8 vy/4VHZsWXhFm7kPjynGnSZIGRZ4e9hWRf6JECwaFED82IpCCUIM2IIRqp9IZv5ycYV7 V1MQ== X-Gm-Message-State: AKwxytc4s20Raa85pS/kHCCtBbKeeENNjEOq0KrESH4fv5JNHv0/EO8V 5UNSlu8/BvkoB3OJPO0do8zw3SRPWgOBXkxM/B5KGg== X-Google-Smtp-Source: AH8x2257J8YOnk8F6cJAc2VSSBnjjaQledg5cOTyprcUjX5H4Tj+/yCOsKcIIZOQqBzT7NXZzgaUbM9IFJ18IFwRUvs= X-Received: by 10.36.82.146 with SMTP id d140mr1080466itb.54.1516739728426; Tue, 23 Jan 2018 12:35:28 -0800 (PST) MIME-Version: 1.0 Received: by 10.79.83.131 with HTTP; Tue, 23 Jan 2018 12:35:27 -0800 (PST) In-Reply-To: References: <20180123145453.GA1916@Magus.localnet> From: Jeremy Yallop Date: Tue, 23 Jan 2018 20:35:27 +0000 Message-ID: To: Chet Murthy Cc: Oleg , Caml List Content-Type: text/plain; charset="UTF-8" Subject: Re: [Caml-list] Are record types generative? On 23 January 2018 at 17:39, Chet Murthy wrote: > That is, when you write a caml program and it fails to type-check, you can't make it type-check by adding "enough" type-annotations. This hasn't been the case for a long time (perhaps ever), and it's becoming less true with each release. For example, all of the following programs pass type checking as written, but are rejected if the annotations are removed: (* 1 *) let f (g : x:int -> y:int -> int) x y = (g ~x ~y, g ~y ~x) (* 2 *) let rec f : 'a. 'a -> unit = fun x -> ignore (f 3, f "four") (* 3 *) let f : [`A] -> unit = function `A -> () | _ -> . (* 4 *) module type S = module type of struct let r : int list ref = ref [] end (* 5 *) let f (o : unit>) = (o#m (), o#m 2) (* 6 *) let f z = let rec x = [| y; z |] and y : int = z in x (* 7 *) let x : _ format6 = "%d" in Printf.sprintf x (* 8 *) type a = A | B type b = A let x = (A : a) = B (* 9 *) let f : (module S) = (module struct end) (* 10 *) module rec M : module type of struct let f : int -> int = assert false end = struct let f = M.f end