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 E7F145D5 for ; Thu, 23 Aug 2018 10:23:19 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.53,278,1531778400"; d="scan'208";a="343482874" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 23 Aug 2018 12:23:18 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id E8792824CB; Thu, 23 Aug 2018 12:23:17 +0200 (CEST) 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 CA8B782486 for ; Thu, 23 Aug 2018 12:23:09 +0200 (CEST) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=rich@annexia.org; spf=Pass smtp.mailfrom=rich@annexia.org; spf=Pass smtp.helo=postmaster@annexia.org IronPort-PHdr: =?us-ascii?q?9a23=3ApdaIdBy5oRU1SwDXCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?1eMQIJqq85mqBkHD//Il1AaPAd2Eraocw8Pt8InYEVQa5piAtH1QOLdtbDQizf?= =?us-ascii?q?ssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1?= =?us-ascii?q?JuPoEYLOksi7ze+/94HRbglSmDaxfa55IQmrownWqsQYm5ZpJLwryhvOrHtIeu?= =?us-ascii?q?BWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbO?= =?us-ascii?q?SxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDwULs6Wymt771zRRHmiC?= =?us-ascii?q?kJKSM3/mLZisN/kK1UvRCuqBJkzo7IfI2YLuZycr/HcN8EQ2dKQ8ZfVzZGAoO5?= =?us-ascii?q?d4YDAfYPPedEoIn9vVQOtwaxDhSsC+/1zTFEnGL906k90+QnDw7GxwIsFM8JvX?= =?us-ascii?q?TOrdX6KKcSXPuvw6nOyzXMcfxX2Tbn54TSdRAhu/6MUKt2fMHMykcvDxvIg1aM?= =?us-ascii?q?pYD/Pj6Y1f4BvmyG4+Z6SO6iiW8qpgdsqTa13MgskJPGhocNx1DE6yp5xIE1KM?= =?us-ascii?q?WiR059Z96rDpRRtyCAOIdsRcMiWW5otD47yr0Ap5G7YDAHxZc7yxLFavGKcJKE?= =?us-ascii?q?7xb+WOqLPDt1hnNodKq6hxmo8EigzuP8VtOz0FZPtidFiNjMuWwN1xHI8MeHTP?= =?us-ascii?q?198Vmu2DaOzQ/f8OZEIVo7labDMZ4u3qYwloYPsUTEBiL5hF/5jKqSdkk9/uio?= =?us-ascii?q?6v/nYqn9q5+HN450jxn+Pb40lsy+B+Q4KAkOUHKB9eSyzr2wtXH+FZtOiec3m6?= =?us-ascii?q?+RmZbVKMAWurK4S1tS2Zoqww64Cyat0NMCmn9BIkgTKzydiI28cWvPK/DxF/v3?= =?us-ascii?q?vBKJ1n9JwPbLJfepVo/MJXjrmbHncKZ84ghb0gVlnoMX3I5dFrxUeKG7YUT2rt?= =?us-ascii?q?GNVkZoYTzx+P7uDZBG7q1bXGuOBqGDN6aL6g2B4OQiM+iFIogPt2SkcqR317vV?= =?us-ascii?q?lXY83GQlU+yxx5JOMyKxGPJrM0SQJ332jYVZSDpYjk8FVOXvzWa6f3tTanK1Bv?= =?us-ascii?q?lu7zc9BZKnBMHEXI//2bE=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BhBAD5iX5b/7BbRFBbHAEBAQQBAQoBA?= =?us-ascii?q?YNPgWSDUJR6TAEBAQEBAQaBNZgbCysBhEACgw0aBgEENBQBAgEBAgEBAQEBbCi?= =?us-ascii?q?CNSKCYQEFJxM/EAsOCgkTEg8tGwYuhHwRo0czhGiFd4kfEQZ5PkmDdi6KVgKSU?= =?us-ascii?q?ohKBwICj2AigTCNEJM/gVghgVJ9CDuCapBTPoEpAY1gAQE?= X-IPAS-Result: =?us-ascii?q?A0BhBAD5iX5b/7BbRFBbHAEBAQQBAQoBAYNPgWSDUJR6TAE?= =?us-ascii?q?BAQEBAQaBNZgbCysBhEACgw0aBgEENBQBAgEBAgEBAQEBbCiCNSKCYQEFJxM/E?= =?us-ascii?q?AsOCgkTEg8tGwYuhHwRo0czhGiFd4kfEQZ5PkmDdi6KVgKSUohKBwICj2AigTC?= =?us-ascii?q?NEJM/gVghgVJ9CDuCapBTPoEpAY1gAQE?= X-IronPort-AV: E=Sophos;i="5.53,278,1531778400"; d="scan'208";a="343482814" Received: from annexia.org ([80.68.91.176]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES256-GCM-SHA384; 23 Aug 2018 12:23:09 +0200 Received: from rich by annexia.org with local (Exim 4.89) (envelope-from ) id 1fsmlg-0006wG-8h; Thu, 23 Aug 2018 11:23:08 +0100 Date: Thu, 23 Aug 2018 11:23:08 +0100 From: "Richard W.M. Jones" To: Florian Angeletti Cc: caml-list@inria.fr Message-ID: <20180823102308.5mnfm7x3p26lgrhp@annexia.org> References: <20180823091552.vq5oizsushwfivgz@annexia.org> <20180823094826.xhc253lxxgt5la7a@annexia.org> <81f925d8-a5e0-2c6b-b2c7-a752e2db4135@polychoron.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <81f925d8-a5e0-2c6b-b2c7-a752e2db4135@polychoron.fr> User-Agent: NeoMutt/20170113 (1.7.2) Subject: Re: [Caml-list] Returning printf from a function Reply-To: "Richard W.M. Jones" X-Loop: caml-list@inria.fr X-Sequence: 17034 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, Aug 23, 2018 at 12:08:10PM +0200, Florian Angeletti wrote: > A solution that works in this specific example and does not require to > rewire the logic is > to return the printing function inside a record with the right universal > quantification: > > ... > > type debug = {fn: 'a. ('a, unit, string, unit) format4 -> 'a }[@@unboxed];; > > let udebug = {fn=debug} > > let give_fn () = Some udebug > > ... > > | Some {fn} -> > fn "fn"; > fn "fn param: %s" param Thanks, that does indeed work. Rich. -- Richard Jones -- Caml-list mailing list. Subscription management and archives: https://sympa.inria.fr/sympa/arc/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs