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 922687FEFE for ; Fri, 24 Jun 2016 20:56:23 +0200 (CEST) IronPort-PHdr: 9a23:fKP8oBX35Y1N9Ha1LoYl/RjKFunV8LGtZVwlr6E/grcLSJyIuqrYZhOFt8tkgFKBZ4jH8fUM07OQ6PG4HzRQqs/Y4DgrS99lb1c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUiv2OQc9HOnpAIma153xjLHqvcWDKFwR1HKUWvBbFF2OtwLft80b08NJC50a7V/3mEZOYPlc3mhyJFiezF7W78a0+4N/oWwL46pyv+YJa6jxfrw5QLpEF3xmdjltvIy4/SXEGCuI4HQWVS0kkhNODECR7AP6V5H+6HqnnuB53y6fN8DsQvYyVCj0vIlxTxq9qiodOjsouFDejsh3lOoPsRuloxtn64HRaYCRcvF5e/WOLpshWWNdU5MJBGR6CYSmYt5KVrJZMA== 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-qk0-f171.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.220.171; 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.220.171 as permitted sender) identity=mailfrom; client-ip=209.85.220.171; 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-qk0-f171.google.com) identity=helo; client-ip=209.85.220.171; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yallop@gmail.com"; x-sender="postmaster@mail-qk0-f171.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0B4AAAVgm1Xf6vcVdFchBR9Bq53iyyBeyKFdgKBLgc4FAEBAQEBAQEBEQEBCQsLCR8xgjKCGwEBBBIRBBkBGx0BAwwGBQsDCgICJgICIgERAQUBHAYTIodzAQMXDqkFgTE+MYs7gWqCWgWHGQoZJw1SgzcBAQEBAQEEAQEBAQEaAgEFEHGJdIdBgloFmQCGCIgsgVONUI4/Eh6BDx6CMYF2OzIBiS8BAQE X-IPAS-Result: A0B4AAAVgm1Xf6vcVdFchBR9Bq53iyyBeyKFdgKBLgc4FAEBAQEBAQEBEQEBCQsLCR8xgjKCGwEBBBIRBBkBGx0BAwwGBQsDCgICJgICIgERAQUBHAYTIodzAQMXDqkFgTE+MYs7gWqCWgWHGQoZJw1SgzcBAQEBAQEEAQEBAQEaAgEFEHGJdIdBgloFmQCGCIgsgVONUI4/Eh6BDx6CMYF2OzIBiS8BAQE X-IronPort-AV: E=Sophos;i="5.26,522,1459807200"; d="scan'208";a="223964934" Received: from mail-qk0-f171.google.com ([209.85.220.171]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 24 Jun 2016 20:55:57 +0200 Received: by mail-qk0-f171.google.com with SMTP id c73so156953391qkg.2 for ; Fri, 24 Jun 2016 11:55:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=XTBooNAk2xf+no+6sFtvD9OFw2ZUo8wW9hf2VpZrxpA=; b=MTjO8MGUImZrThlhCzcpJ7vmgl8AYslBeADUAJEHPSFQDGENBojo7k/KcH8gOj+wrV ycqbPlIeK9Z9qgZosuFA+Qrday0rJC7+GAjijBeHULM/FO8KJGLoAGzxVizXyc0dU21B L5y00CvIMUEOZTDk8gNwxKkwv1AyET/4auIYecMXElb4hdaGm5V0u1+MhIcsAMZyLbDj C2dqKMbaFDu/Vk3YaWdSsgFp4IDa8/BxaHsJL9Bu+/DnTMhenLffEJcZtSrbM5YRrnIW 4uNwRsaz3vtGLh+zPnJkpb5PYsI7N9vHeFdUwOh1UD9K6Hi+tJgL8lrrlCkn5s0dsBqB B7bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=XTBooNAk2xf+no+6sFtvD9OFw2ZUo8wW9hf2VpZrxpA=; b=QuF9fTnJ3jpWS8IBo1L5ga6P1aQHp0BIss94WdBU/xdFsQRigsQLSNzmzwtwrr64QG 4JYVL+vFrR0FPjHqGeOwqmIpfjbHeHoXx4lqPZvK7s5WFlJG8SToPXyfanM/Cfl2NE0z ljIUi5x2jkIsiI0Uemp+hdHkaEzfSStd5r55QWSG5WOT8sdqk41po5OPC0H3tVAm6ghs uI7++0n5CA63yi4fcvpM/a1hZEmcKlHA0N0Nt3hxpgz7FRyjR6aMQHLz+84nd0dIxq9s VZvcvsPMPPtlJyBubZK9KcMmNvWW/bc9aMbN0WNfLgzqwvV4Na5RGaY1Q2ey0hLTtjbH mP6A== X-Gm-Message-State: ALyK8tJPvYLZWwcgyjTejAmD8isU5vsTSH2pItJVJGelnU9fc+zOtdCuwyAYBepXMtRhgetqbZMvfbbthopPiQ== X-Received: by 10.55.73.209 with SMTP id w200mr6948245qka.77.1466794556535; Fri, 24 Jun 2016 11:55:56 -0700 (PDT) MIME-Version: 1.0 Received: by 10.55.182.6 with HTTP; Fri, 24 Jun 2016 11:55:55 -0700 (PDT) In-Reply-To: <576D7A6E012D045A003906FD_0_112375@p057> References: <576D7A6E012D045A003906FD_0_112375@p057> From: Jeremy Yallop Date: Fri, 24 Jun 2016 19:55:55 +0100 Message-ID: To: Hongbo Zhang Cc: Caml List Content-Type: text/plain; charset=UTF-8 Subject: Re: [Caml-list] typing question: universal type variable in class type On 24 June 2016 at 19:22, Hongbo Zhang (BLOOMBERG/ 731 LEX) wrote: > When we wrote bindings for promise, we want to express things (simplified ) > like below: > > class type ['b] promise = object > method then_ : 'a . ('b -> 'a promise) -> 'a promise > end > > It is not expressible in OCaml, The universal type variable 'a can not be > generalized, I tried this too: > > type 'b promise = < then_ : 'a . ('b -> 'a u) -> 'a u > > > It does not work either, thanks -- Hongbo You might find something useful in this thread: https://sympa.inria.fr/sympa/arc/caml-list/2015-10/msg00130.html