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 E8BAD8027D for ; Thu, 26 Oct 2017 10:06:57 +0200 (CEST) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=mmatalka@gmail.com; spf=Pass smtp.mailfrom=mmatalka@gmail.com; spf=None smtp.helo=postmaster@mail-pf0-f182.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of mmatalka@gmail.com) identity=pra; client-ip=209.85.192.182; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="mmatalka@gmail.com"; x-sender="mmatalka@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of mmatalka@gmail.com designates 209.85.192.182 as permitted sender) identity=mailfrom; client-ip=209.85.192.182; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="mmatalka@gmail.com"; x-sender="mmatalka@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-pf0-f182.google.com) identity=helo; client-ip=209.85.192.182; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="mmatalka@gmail.com"; x-sender="postmaster@mail-pf0-f182.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3A/LrPyhc/DZWXcXaXEjDfGUanlGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxc66ZR7h7PlgxGXEQZ/co6odzbGJ4+a9ASQp2tWojjMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpRZbIBj0NBJ0?= =?us-ascii?q?K+LpAcaSyp3vj6Hhs6HUNk9yhTG9aKl+ZCrwiEOZlM4QjJAoYvIryxDJinJOfe?= =?us-ascii?q?lGxGouIkicyUXS/MC1qbtq9y9Xv/dp0sdcWKH5duxsSLlRED0iMGkd68jitB2F?= =?us-ascii?q?RgyKsChPGl4KmwZFVlCWpCrxWY38526j7rJw?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CUAACTlvFZhrbAVdFbHAEBBAEBCgEBF?= =?us-ascii?q?gEBAQMBAQEJAQEBhS2dJIF6iT6PEwqEJgGBFAKEdEMUAQEBAQEBAQEBAQESAQE?= =?us-ascii?q?BCAsLCCgvgjgFAR4BBYI7AQEBAQIBJxkBGwwRAQMBCwYFCw0JJQ8BBA8RAQUBI?= =?us-ascii?q?hOKBwEDDQgEnFxAjXkYBQEcgwkFg14KGScNWIJXAQEBAQEBBAEBAQEBARoCBgk?= =?us-ascii?q?BCIMcgTZRgVCFE4RehhwFkVWQJJR5i2CHSpVbAgQCBAUCBhQkgRU2ggk0IQgdF?= =?us-ascii?q?Uk1gi+CTR+Bc3eJKW+BVQEBAQ?= X-IPAS-Result: =?us-ascii?q?A0CUAACTlvFZhrbAVdFbHAEBBAEBCgEBFgEBAQMBAQEJAQE?= =?us-ascii?q?BhS2dJIF6iT6PEwqEJgGBFAKEdEMUAQEBAQEBAQEBAQESAQEBCAsLCCgvgjgFA?= =?us-ascii?q?R4BBYI7AQEBAQIBJxkBGwwRAQMBCwYFCw0JJQ8BBA8RAQUBIhOKBwEDDQgEnFx?= =?us-ascii?q?AjXkYBQEcgwkFg14KGScNWIJXAQEBAQEBBAEBAQEBARoCBgkBCIMcgTZRgVCFE?= =?us-ascii?q?4RehhwFkVWQJJR5i2CHSpVbAgQCBAUCBhQkgRU2ggk0IQgdFUk1gi+CTR+Bc3e?= =?us-ascii?q?JKW+BVQEBAQ?= X-IronPort-AV: E=Sophos;i="5.43,434,1503352800"; d="scan'208";a="297971340" Received: from mail-pf0-f182.google.com ([209.85.192.182]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 26 Oct 2017 10:06:56 +0200 Received: by mail-pf0-f182.google.com with SMTP id p87so1946606pfj.3 for ; Thu, 26 Oct 2017 01:06:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=X03NOS5m1OWybgCKPBu3CVQgG0smVdQmmJ/Z1esJXGI=; b=SKhk2Cezcv16M8HSismYTMP4nQ2GDrOuGz2hOIO2vuDTdzENkZabqF4VdPrx1s4dtX yrs8jcveRnOHS/TZQzh420aHXjmS+I7pj/y8rl25aIgIQ7vXSueEAioAgp8w8JABkvet uqP8IJwjd+lnr18PaSI+judI4usC91cr4m+WtuC3gkRanwctBmYNJ3mSkGaTTaIeUK/t 4tz2v7ugds83YaQbAGroS8im7e2hTGBiGMoVXVMtsM8GXDgVBvoMoAsckvMrSTV0GpyW hyGP7WDcZ5kt9h/Nlmd3ZaN6cwM3xE85RQfowkJd4M5x2dttDPjTrSCACO7aIdz9mlop Vf8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=X03NOS5m1OWybgCKPBu3CVQgG0smVdQmmJ/Z1esJXGI=; b=HC9uUxZ3VMXVBjSlDZhYozAegbpw0rpRqXbhA+mcNqOLUExEAOo1/PDO3dMl7UI/JM WZ8QUBIv/amrXcEAbQwhhg6Q5LO2yZIEYRkraFkxLIlv5D6G/tMEsuJRR7IP5SO9/gIU Mmmu2h9Fh96vQjQaMSCp4aI3UjdicAYTWE0kOStQp6ENR6mgxayGbxKCjzwNoyYGteG0 1wT8appW0/PM2oSgqkboLoOMnThx8E2QrAEzHPX6Ism/rV/DvkYLPPF0nhygCqenJVdk UZK1FFekAimSxqZbtsAowXIvyGMJ6VgVZ/0Yn0HYXmic2S5z3D3l1qRBWfRaiCeKJYXu 2QfQ== X-Gm-Message-State: AMCzsaVaaAhVxTenm844+Pmg1ZHIcOlq/MCbPQkfCYv0FtyeVlMkHF3m Lzi/5vsZhAt7y9DB4GHSL2Y= X-Google-Smtp-Source: ABhQp+SZiaU/cqwRgXdzBSwVxCHYcz1555ua6mEM5DwXd0fyiVFVLSKcfbTzyW423/zUPK5SSaxsrw== X-Received: by 10.84.178.129 with SMTP id z1mr3798647plb.123.1509005215287; Thu, 26 Oct 2017 01:06:55 -0700 (PDT) Received: from localhost ([37.153.108.22]) by smtp.gmail.com with ESMTPSA id s83sm9313914pfg.104.2017.10.26.01.06.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 26 Oct 2017 01:06:53 -0700 (PDT) From: Malcolm Matalka To: "Richard W.M. Jones" Cc: Philippe Veber , "Petter A. Urkedal" , ptoscano@redhat.com, caml users References: <86o9p2ywgc.fsf@gmail.com> <20171020113815.GD32138@nunchakus.loria.fr> <20171024133026.uovvzdbnamnzoknv@annexia.org> <20171025083530.gvggcenrgxolduse@annexia.org> <20171025145247.5rxad7qixivzn4vj@annexia.org> Date: Thu, 26 Oct 2017 08:06:50 +0000 In-Reply-To: <20171025145247.5rxad7qixivzn4vj@annexia.org> (Richard W. M. Jones's message of "Wed, 25 Oct 2017 15:52:47 +0100") Message-ID: <86r2tqxrhh.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Caml-list] What if exn was not an open type? "Richard W.M. Jones" writes: > On Wed, Oct 25, 2017 at 11:12:26AM +0200, Philippe Veber wrote: >> isn't that a context where error monads do a pretty decent job? >> >> check_some_problem () >>= fun () -> >> check_some_other_problem () >>= fun () -> >> expect_something () >>= fun something -> >> finally_do something > > Right, but the main problem with monads is they scare off ordinary > programmers :-/ F# seems to have limited support for monads, but they call them "workflows" and "computation statements" (or something like that). Maybe just a name change would be sufficient for Ocaml folks. We can tell everyone it's just monads still, but we want to call them blah. I dunno, how effective that is. > > When writing open source code in OCaml we have two -- conflicting -- > goals. Goal #1 is to write elegant, short, fast, safe code, and OCaml > really wins there. Goal #2 is to attract outside programmers to work > on the project, and that's pretty hard with OCaml code, but we manage > it. But it gets much much harder if we use any concept which strays > too far from imperative/C-like code. You will see if you look through > our codebase that it's pretty imperative and -- quite deliberately -- > avoids doing strange stuff with modules, functors or really anything > which is "excessively functional" (sorry for the loose term, but I > hope you know what I mean :-). > > However when I have the time after my current conference I will try > to rewrite the code I linked to with monads to see if I can make > something which is both simple and readable. > > Thanks, > > Rich.