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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 732857F0AF for ; Sat, 5 Mar 2016 13:12:35 +0100 (CET) IronPort-PHdr: 9a23:/iWItxK+WSaSheOc3tmcpTZWNBhigK39O0sv0rFitYgULv7xwZ3uMQTl6Ol3ixeRBMOAu60C1Lqd6vmocFdDyKjCmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TWM5DIfUi/yKRBybrysXNWC0ILoh6vrotX6WEZhunmUWftKNhK4rAHc5IE9oLBJDeIP8CbPuWZCYO9MxGlldhq5lhf44dqsrtY4q3wD86Fpy8kVWqz/e+E8TKdEJDUgKWE8osPx5jfZSg7ayXwHTWQQ2gRPBUDv9hz2U431tTSy4uV6wzabO4joCLocRjmoqatmHky7wBwbPiI0pTmEwvd7i7hW9Uqs Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=goswin-v-b@web.de; spf=Pass smtp.mailfrom=goswin-v-b@web.de; spf=None smtp.helo=postmaster@mout.web.de Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of goswin-v-b@web.de) identity=pra; client-ip=212.227.15.4; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="goswin-v-b@web.de"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of goswin-v-b@web.de designates 212.227.15.4 as permitted sender) identity=mailfrom; client-ip=212.227.15.4; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="goswin-v-b@web.de"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mout.web.de) identity=helo; client-ip=212.227.15.4; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="postmaster@mout.web.de"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BBAQDuy9pWlgQP49RdrTQEA4ohh2qBaYc9ORMBAQEBAQEBARABAQEBBw0JCSEvgi2CQhN7NAUoUoduARUEoF+ZMh+FKY9agl+BDwWXKo1jiSUKhVMCjlQhAYICUoFRihcBAQE X-IPAS-Result: A0BBAQDuy9pWlgQP49RdrTQEA4ohh2qBaYc9ORMBAQEBAQEBARABAQEBBw0JCSEvgi2CQhN7NAUoUoduARUEoF+ZMh+FKY9agl+BDwWXKo1jiSUKhVMCjlQhAYICUoFRihcBAQE X-IronPort-AV: E=Sophos;i="5.22,540,1449529200"; d="scan'208";a="167143338" Received: from mout.web.de ([212.227.15.4]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2016 13:12:34 +0100 Received: from frosties.localnet ([134.3.242.84]) by smtp.web.de (mrweb002) with ESMTPSA (Nemesis) id 0MLyCC-1aWgMH3WJQ-007hvu for ; Sat, 05 Mar 2016 13:12:33 +0100 Received: from mrvn by frosties.localnet with local (Exim 4.84) (envelope-from ) id 1acB4T-0008SN-2O for caml-list@inria.fr; Sat, 05 Mar 2016 13:12:33 +0100 Date: Sat, 5 Mar 2016 13:12:32 +0100 From: Goswin von Brederlow To: caml-list@inria.fr Message-ID: <20160305121232.GA32474@frosties> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-Provags-ID: V03:K0:9Ho1Rbta/Cesfa5YkJcfUTR3ptTRSEKryX7os7vvPaum2E76ypO JHjJafqadXsWxSJOfz6YjV9VzZc3M4uvKIXM6lzMdCpZIYK5HpG8lFRtApWiw5ybppHBfKi W8NZQn1btN8ujnGZnLqRsZeQ/8/LdAVwB6oq1YFJblkLcmIhAQCsj5K55KEicBEhc4S3Uv9 qJkB6mUmwfskTGetOm1WA== X-UI-Out-Filterresults: notjunk:1;V01:K0:R26hO2Mfl8k=:03+a4qwXD6wwKbEQ3CG14Z vrmZBVZVvIZrgcCw+0BJHBecp6TCqdVhKcBOEIkdyUTt24GMjo0J+ZJg+cbEe22TI3R6GdGVe NAmqFlIc2F8Lb/jpTzXUs8oy0cMjyXL/yicRIuJd3GPhmFJP6Mz/gKBEHM8jXDYNazBqCTaud z0O5aFPcN9l9fOdAa37aBSCCJhqAo5sjZ3FsznZrV/8tAwhalQLnMw6QxoTGbAOK+0hcHVk/I BvfqUuprwf5/99gl/QZQM4B5WyivIE8DDKMKxdbe27taeKXTXtW+8e3sTE9R7+tW14kbDoMKw +YepHdFK5xdbNxItz0GsmafoacFU8g63uh0dA7DhuNLFLRT0yCbczy5abWn6HTJgKvn4QhifU VJWQtmA+9X0zwvhhLNlofeHNuPgXJeq1ykCljBzkRasvHbWAnxscHv0cGmPLohamJgHkojYVs ZMBGFo8Z8K4zn6b8sRNZ4Q0Fv2wHQq50CsCvEbMM7nvCzHrKI3jpyNLJhEa3csWHCNm3ZZ9Mk 87mcXaZwbv/K5IXtdsB4X2okoS8c7GrHAElNtEauSgWDH2aTx11q3DbBYDcugdOeDWJqtWzk4 F9i6AOvr74FbMmZgWlefGUb4QNZu/MkQTDahUYLEzzEUkzDNm2IYdtGoEOxCAvM7nFyG6zljR pQzHh9R0trNqDMmWg88jlnUcQw2PXNl16o8f5EFk0+PBYwB7qKLltDBudksOnKiDV6jQZbYMA LB674YUHUFuOTgIWAh3HeWE5HEmYoZevbBJphANIsfZuEtzPvCbJuq2z0rc= Subject: [Caml-list] RFH: type recursion between a class and external functions Hi, are there any nice ways to solve a type recursion between a class and external functions? MfG Mrvn --- module Proxy = struct type 'a t end class ['a] oMainWindow proxy = object inherit ['a] OWidget.oWidget proxy (* method show = show proxy method centralWidget = let widget_proxy = centralWidget proxy in new QWidget.qWidget widget_proxy method setCentralWidget : 'b . 'b OWidget.oWidget -> unit = fun w -> let widget_proxy = w#proxy in setCentralWidget proxy widget_proxy *) end external make : unit -> 'a oMainWindow Proxy.t = "caml_mrvn_QT5_OMainWindow_make" let make () = let proxy = make () in new oMainWindow proxy external show : 'a oMainWindow Proxy.t -> unit = "caml_mrvn_QT5_OMainWindow_show" let show win = let win = win#proxy in show win external centralWidget : 'a oMainWindow Proxy.t -> 'b OWidget.oWidget Proxy.t = "caml_mrvn_QT5_OMainWindow_centralWidget" let centralWidget win = let win = win#proxy in let proxy = centralWidget win in new OWidget.oWidget proxy external setCentralWidget : 'a oMainWindow Proxy.t -> 'b OWidget.oWidget Proxy.t -> unit = "caml_mrvn_QT5_OMainWindow_setCentralWidget" let setCentralWidget win w = let win = win#proxy in let w = w#proxy in setCentralWidget win w