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 B95847F0AB for ; Thu, 23 Mar 2017 21:59:34 +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-qk0-f179.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.179; 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.179 as permitted sender) identity=mailfrom; client-ip=209.85.220.179; 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-f179.google.com) identity=helo; client-ip=209.85.220.179; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yallop@gmail.com"; x-sender="postmaster@mail-qk0-f179.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AdDasyheOJk76odxtek9bt+3OlGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxcu5Yh7h7PlgxGXEQZ/co6odzbGH7+a4ASQp2tWoiDg6aptCVhsI24?= =?us-ascii?q?09vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7?= =?us-ascii?q?Ovr6GpLIj8Swyuu+54Dfbx9GiTe5br5+Ngm6oRnMvcQKnIVuLbo8xAHUqXVSYe?= =?us-ascii?q?RWwm1oJVOXnxni48q74YBu/SdNtf8/7sBMSar1cbg2QrxeFzQmLns65Nb3uhnZ?= =?us-ascii?q?TAuA/WUTX2MLmRdVGQfF7RX6XpDssivms+d2xSeXMdHqQb0yRD+v6bpgRh31hy?= =?us-ascii?q?cdLzM28m/XhMx+gqxYvRyvuQBwzYHPbYGJLfpzZL/Rcc8GSWdDWMtaSixPApm7?= =?us-ascii?q?b4sKF+cPOfhXr5PjqFsLrRq1GAujC/nryj9MgX/2xbAx3uMhEA7c2AwgG9UOsG?= =?us-ascii?q?zPodX6MacdS+G1zK3SwTrfaPNW3C7w5Y7VeR4vpvGMWKh/ccvXyUQ3CgPFi0if?= =?us-ascii?q?pZb7MDyIy+QAtXWQ4el4Ve+3lWIrtwV8riKsy8oskIXFmJwZxkze+Slkwos4Id?= =?us-ascii?q?u1Q1Nhb9G+CptfrSSaOpN2Qsw8R2Fovz43yrgctp66eCgG0Y0nxx3DZ/CefYiE?= =?us-ascii?q?/xDuWeKLLTd3g3Jlf72/hxKs/kS61uL8Ucy03E5LripDjNbMqmgA2wLP5sWDUP?= =?us-ascii?q?dw/Ues1SyR2wzN9u1IO104mKjfJpI5x74/jJsTsUDNHi/sn0X2ibebd0U+9eis?= =?us-ascii?q?7+TnZa3mq4STN49xkA7+M6AultajDuQ/NwgCR3Kb9vik1L3/4U35R61HgeEsna?= =?us-ascii?q?nctJDWPMAbpq+iAw9JyYsj8Ba+DzK+0NsCh3UHLVRFeAiGj4fzIV3OLur4Xr+D?= =?us-ascii?q?hAGHkC1q3OzBJr3WIgvCI2KLxLzherty5lR01Q8rxJVZ6o4SBrxXc9zpXUqklt?= =?us-ascii?q?HCAxooez29x+LgEJ0px4oaXWWXKqCcOaLW91SP47R8cKG3eIYJtWOleLAe7Pn0?= =?us-ascii?q?gCphlA=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0C6BgBuNtRYhrPcVdFeFgYBAQQBAQoBA?= =?us-ascii?q?RcBAQQBAQoBAYQHgQsHg1ubXokEjlMqhXgCgxEHQxQBAQEBAQEBAQEBARIBAQE?= =?us-ascii?q?ICwsIKC+CMyCCQwECAyMdARsdAQMMBgULDQICJgICIgERAQUBHAYTiW0BAxUOn?= =?us-ascii?q?W8/jAOCBAUBHIMJBYNfChknDVWCLQEBAQEBBQEBAQEBAQEZAgEFEnmKMoRUgwa?= =?us-ascii?q?CXwWcVZJKgWOPTJIaFB+BFTaBJSQWCBcVQReEMiCBb0A1AQGKBwEBAQ?= X-IPAS-Result: =?us-ascii?q?A0C6BgBuNtRYhrPcVdFeFgYBAQQBAQoBARcBAQQBAQoBAYQ?= =?us-ascii?q?HgQsHg1ubXokEjlMqhXgCgxEHQxQBAQEBAQEBAQEBARIBAQEICwsIKC+CMyCCQ?= =?us-ascii?q?wECAyMdARsdAQMMBgULDQICJgICIgERAQUBHAYTiW0BAxUOnW8/jAOCBAUBHIM?= =?us-ascii?q?JBYNfChknDVWCLQEBAQEBBQEBAQEBAQEZAgEFEnmKMoRUgwaCXwWcVZJKgWOPT?= =?us-ascii?q?JIaFB+BFTaBJSQWCBcVQReEMiCBb0A1AQGKBwEBAQ?= X-IronPort-AV: E=Sophos;i="5.36,211,1486422000"; d="scan'208";a="265948457" Received: from mail-qk0-f179.google.com ([209.85.220.179]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 23 Mar 2017 21:59:33 +0100 Received: by mail-qk0-f179.google.com with SMTP id f11so4556360qkb.0 for ; Thu, 23 Mar 2017 13:59:34 -0700 (PDT) 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:content-transfer-encoding; bh=6w2phXiYy+KNlaVNl9ld34CDFlScTBe0ucm7hzTzU7g=; b=cT0ND7st5fFlR4hC0b6vHxkfdqo2/oVPaUxH6bTjBzbWNKsWi5hr3uv4DNloYrjD8A HHTGKpqJNUCjDzeD4l+HYYJJLBxClz9ifLjE0a51jT2GOCZ9AStlCB6oPGpnzMBKs8re 0U9Zt3Gp1ppju6te2S/SNBhNwiYBcfmmt2J4bwDAdgbnapXiTGXnENCS7FPY/RPGd3eK qUSK/kEGUIWc/NgRFl6bqrrh0fx3dCnBpxbcB0+RvcGJVgU3EWfA6jFMCME/9JKwPLU0 eaR7RWnEodCHAVE1MI8NzZfgIXQaGzkQmLTql1O0gmaDrb/rBEAemFi+sUFWZRzKxsnu C30g== 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:content-transfer-encoding; bh=6w2phXiYy+KNlaVNl9ld34CDFlScTBe0ucm7hzTzU7g=; b=o5u+HPmarl2znAB51EeKRGePrwda9jXJjbxlegoju8omPPkJkZAPv+qjVX8Rm7fk/4 M5vdnB0+uXPG8G4MSlJNnrStMQw/OBBZpah8fZQi761F/LPM+7n+t/VPX3btgJdfamxD igUmV2S4L+6jF2hD+CqkKyP3xunnc1ECVGVixlzTzSbFvEjQvocKS+hsyGvG6ZTB+fIw M/tYdc3dcM/926UOt2Pox4p9TapIYPckcKrsCI8z/RnPP6vATDNgmKLCETiE3WGun/2O RS7zbokSfFHkoi6oSaURxpSXe6D83TK7QKgXqPRNafazVoyEo+QwmY0JJnmlhoNSUuXu g7YA== X-Gm-Message-State: AFeK/H3irHvCyczVugDkhToiP1UAFJWj0Gm2r+atpO3G61OCsbQv/VvkmtDEHTmV2f1EpKzDhGVq9JhBElOs1w== X-Received: by 10.55.67.135 with SMTP id q129mr4477943qka.98.1490302772885; Thu, 23 Mar 2017 13:59:32 -0700 (PDT) MIME-Version: 1.0 Received: by 10.55.88.194 with HTTP; Thu, 23 Mar 2017 13:59:32 -0700 (PDT) In-Reply-To: <5af3b33f-d4eb-05dc-d774-b42f63275776@umpa-net.de> References: <5af3b33f-d4eb-05dc-d774-b42f63275776@umpa-net.de> From: Jeremy Yallop Date: Thu, 23 Mar 2017 20:59:32 +0000 Message-ID: To: =?UTF-8?Q?Christoph_H=C3=B6ger?= Cc: caml users Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Caml-list] Transforming side-effects to a monad Dear Christoph, On 23 March 2017 at 19:56, Christoph H=C3=B6ger wrote: > For a suitable definition of bind and return, both programs behave > equivalently. My question is: How can one automatically translate a > program of the former kind to the latter? You might be interested in the following paper, which describes exactly such a translation: Lightweight Monadic Programming in ML Nikhil Swamy, Nataliya Guts, Daan Leijen, and Michael Hicks ICFP 2011 https://www.cs.umd.edu/~mwh/papers/swamy11monad.html Kind regards, Jeremy