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 68D7E5D5 for ; Thu, 23 Aug 2018 10:08:23 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.53,278,1531778400"; d="scan'208,217";a="343481142" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 23 Aug 2018 12:08:21 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 4B122824CC; Thu, 23 Aug 2018 12:08:21 +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 29E9A82486 for ; Thu, 23 Aug 2018 12:08:12 +0200 (CEST) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=octa@polychoron.fr; spf=Pass smtp.mailfrom=octa@polychoron.fr; spf=Pass smtp.helo=postmaster@quaesituri.org IronPort-PHdr: =?us-ascii?q?9a23=3AobDcxh/Y/yy63/9uRHKM819IXTAuvvDOBiVQ1KB4?= =?us-ascii?q?0+kcTK2v8tzYMVDF4r011RmVBdqds6oMotGVmpioYXYH75eFvSJKW713fDhBt/?= =?us-ascii?q?8rmRc9CtWOE0zxIa2iRSU7GMNfSA0tpCnjYgBaF8nkelLdvGC54yIMFRXjLwp1?= =?us-ascii?q?Ifn+FpLPg8it2O2+55/ebx9UiDahfLh/MAi4oQLNu8cMnIBsMLwxyhzHontJf+?= =?us-ascii?q?RZ22ZlLk+Nkhj/+8m94odt/zxftPw9+cFAV776f7kjQrxDEDsmKWE169b1uhTF?= =?us-ascii?q?UACC+2ETUmQSkhpPHgjF8BT3VYr/vyfmquZw3jSRMMvrRr42RDui9b9mRgL2hi?= =?us-ascii?q?cJNzA382/ZhcJ/g61ZvB2svAZwz5LObYyPKPZzcKHQcNUHTmRBRMZRUClBD5u8?= =?us-ascii?q?YYsLCOoBJ+dYoJP7p1ATsRa+AwasC/3ryjBWmn/2waw62PkmHAHBwAMgA8gBvW?= =?us-ascii?q?/MrNXyMKcTUfy6zKnPzTXZaPNW3y3x6IbSch04p/yHQLF+cdLJxEQvDQ/Jk1Gd?= =?us-ascii?q?pI3/Mz6XzOgAs3WX4/JjWO+ukWIrtRx9rzy1yssxloXEhJgZxk7L+Clnxos+OM?= =?us-ascii?q?e2R1RhYdG+FZtdryGaOJVyQsMlW2xooTs6xacYtp6gfSgK1IknxwTea/CddIiI?= =?us-ascii?q?+B3jWP6QITd+mn1lZKqyihao/US9zuDxV9O43VRQoidFj9XArnUN2AbS6siDRP?= =?us-ascii?q?t95ECh2TOX2gDU9u5EPVo7mLHDK54mxr4xloYcsUTEHi/sn0X2irWadks++uSw?= =?us-ascii?q?8eTofq3mpoOAN49zkgzxLr4hmsm7AeghNggOXnOb+fin2b34/Uz5Ra1Kgecsnq?= =?us-ascii?q?nYtpDaP8UbqbSjDw9byIZwoyq4Wjyv1dBdmXgcMHpEfgiGhs7nIQLgOvf9WNm7?= =?us-ascii?q?hE6tmTEj7vbJM7nsHonMZizEm6voVa56719XyA0pytYZ6YgCWeJJG+76RkKk7I?= =?us-ascii?q?+QNRQ+KQHhm7+2WuU47ZsXXCe0OoHcNarTtVGS4ed2fruUY4sEszb6Mf8jofD0?= =?us-ascii?q?3yZgxQ0tOJKx1J5SU0iWW+x8KhzEM2LrhsYKEWAQuQx4Qva40ATfAw4WXG67Wu?= =?us-ascii?q?cH3h9+CI+iCt6dFJmwibGa3TumBJwQYXpJWAmB?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DcFgA9hn5b/zMHxAVbHgEYC4M+aHwog?= =?us-ascii?q?2+UM0wBAQEBAQEGgQiJC489CysBhEACCIMFGgYBBDQUAQIBAQIBAQEBAWwcDII?= =?us-ascii?q?1IoJhBiMEGQEBOA8LBAE9AgJXEwgBAReDB4F1EaFnb3szH4JWAQEFgWyFbwiJH?= =?us-ascii?q?xd5gQeBOYI9LoVLgjSCV41WjUgJf45oHYhChX6TP4FYIYFSTScRO4JpixWFQG1?= =?us-ascii?q?5AY1gAQE?= X-IPAS-Result: =?us-ascii?q?A0DcFgA9hn5b/zMHxAVbHgEYC4M+aHwog2+UM0wBAQEBAQE?= =?us-ascii?q?GgQiJC489CysBhEACCIMFGgYBBDQUAQIBAQIBAQEBAWwcDII1IoJhBiMEGQEBO?= =?us-ascii?q?A8LBAE9AgJXEwgBAReDB4F1EaFnb3szH4JWAQEFgWyFbwiJHxd5gQeBOYI9LoV?= =?us-ascii?q?LgjSCV41WjUgJf45oHYhChX6TP4FYIYFSTScRO4JpixWFQG15AY1gAQE?= X-IronPort-AV: E=Sophos;i="5.53,278,1531778400"; d="scan'208,217";a="343481088" Received: from quaesituri.org ([5.196.7.51]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Aug 2018 12:08:11 +0200 Received: from [192.168.1.13] (AMarseille-655-1-642-242.w86-219.abo.wanadoo.fr [86.219.107.242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by quaesituri.org (Postfix) with ESMTPSA id E1B5B102939 for ; Thu, 23 Aug 2018 12:08:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.quaesituri.org; s=mail; t=1535018884; bh=Cae/S1wDM3g1QkYo+IX+ZuE45ZJcV0ndk/f3ks71Gr4=; h=Subject:To:References:From:Date:In-Reply-To; b=XHDMJnHEmsURGmXAlAtPbEkjLupnbXmXTc/oecTJkmhNNwXgFoYQKKW7ppJjmlBMA +tD9YtSr9pvEv99jI2Slp9wPz3aLJKC8clrCJpxJWSkhLsp5HfRmU6kCcAQFJM4IA9 Diw4+34SKT/4iy6RYZIDAzxdMl2i1Q7ZakeeVkFo= To: caml-list@inria.fr References: <20180823091552.vq5oizsushwfivgz@annexia.org> <20180823094826.xhc253lxxgt5la7a@annexia.org> From: Florian Angeletti Message-ID: <81f925d8-a5e0-2c6b-b2c7-a752e2db4135@polychoron.fr> Date: Thu, 23 Aug 2018 12:08:10 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: <20180823094826.xhc253lxxgt5la7a@annexia.org> Content-Type: multipart/alternative; boundary="------------06BAF633F6B966202E986543" Content-Language: en-US-large Subject: Re: [Caml-list] Returning printf from a function Reply-To: Florian Angeletti X-Loop: caml-list@inria.fr X-Sequence: 17033 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: This is a multi-part message in MIME format. --------------06BAF633F6B966202E986543 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit 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 -- 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 --------------06BAF633F6B966202E986543 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit
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

--------------06BAF633F6B966202E986543--