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 95F75801D7 for ; Tue, 24 Oct 2017 21:02:57 +0200 (CEST) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=paurkedal@gmail.com; spf=Pass smtp.mailfrom=paurkedal@gmail.com; spf=None smtp.helo=postmaster@mail-wr0-f171.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of paurkedal@gmail.com) identity=pra; client-ip=209.85.128.171; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="paurkedal@gmail.com"; x-sender="paurkedal@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of paurkedal@gmail.com designates 209.85.128.171 as permitted sender) identity=mailfrom; client-ip=209.85.128.171; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="paurkedal@gmail.com"; x-sender="paurkedal@gmail.com"; 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@mail-wr0-f171.google.com) identity=helo; client-ip=209.85.128.171; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="paurkedal@gmail.com"; x-sender="postmaster@mail-wr0-f171.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AR+Qh+RUkyZaaO6KxzRJ6EHOyjhzV8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYZROCt8tkgFKBZ4jH8fUM07OQ6P+wHzFYqb+681k8M7V0Hycfjs?= =?us-ascii?q?sXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aSV3DMl9+?= =?us-ascii?q?L+HxX4rTlNj/g+u7/pmWZwRTmBK8Z6lzJVO4t1OCmNMRhN4oEqst1hbT6lIOM9?= =?us-ascii?q?lMxm5kLFbZ10Lk79qq/5Nv+iB4tPco9soGWqL/KfdrBYdEBSgrZjhmrPbgsgPO?= =?us-ascii?q?GFOC?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0C8AQCjje9Zf6uAVdFaHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBhQYnB4NzmWiBVwUeiTuMf4IRCoQmAYEUAoRaB0EWAQEBAQEBAQE?= =?us-ascii?q?BAQESAQEJCwsIJjGCOCKCRAECAyMEGQEbHgMMBgULDQICJgICIgERAQUBHAYTC?= =?us-ascii?q?Il/AQMVmztAjAyBbRgFARyDCQWDawoZJw1YgnsMHgIGEn2CH4IHhmOIGYJhBaF?= =?us-ascii?q?tApRzgXyRKZVrFAUfgRUmAoIKel41gi+CTYIUPjaLcQEBAQ?= X-IPAS-Result: =?us-ascii?q?A0C8AQCjje9Zf6uAVdFaHAEBBAEBCgEBFwEBBAEBCgEBhQY?= =?us-ascii?q?nB4NzmWiBVwUeiTuMf4IRCoQmAYEUAoRaB0EWAQEBAQEBAQEBAQESAQEJCwsIJ?= =?us-ascii?q?jGCOCKCRAECAyMEGQEbHgMMBgULDQICJgICIgERAQUBHAYTCIl/AQMVmztAjAy?= =?us-ascii?q?BbRgFARyDCQWDawoZJw1YgnsMHgIGEn2CH4IHhmOIGYJhBaFtApRzgXyRKZVrF?= =?us-ascii?q?AUfgRUmAoIKel41gi+CTYIUPjaLcQEBAQ?= X-IronPort-AV: E=Sophos;i="5.43,429,1503352800"; d="scan'208";a="242224188" Received: from mail-wr0-f171.google.com ([209.85.128.171]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 24 Oct 2017 21:02:56 +0200 Received: by mail-wr0-f171.google.com with SMTP id y39so21730570wrd.4 for ; Tue, 24 Oct 2017 12:02:57 -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; bh=Qn3g9zGw1UtkwGSU6Ar5PqfpXTLYLYsn6PNYcxtVBgs=; b=O51Bw6jT9Ya9v4r5b3FwbGqrxpqyQV+HuG8oLBD4MPD6a2TwpIdkG6PSuRkRmc02fJ NNJCGGUcz2yNXikYOHlBrmhTuCBaPRL3FXTAAn5b0EAfxKWQAEFeUSFY5ndlEWOpEqKe b2ApXK6FmZGIt2lAKwUxUxdg3kX67fsToEiAJaFLPg4szF3+WXBBzqkj34YUX1Y0tRAp QX0Tf0yQMYCwJU2bouRBEgrFVeGP9kulTiKHRFA9zJ7lV2YPG7L5MpCKpBp5WG03vwR8 /P/GwcNQkhuz/ws6Ez3SqkrOUZtyG2eBArpAX89jy6Ycn/8rPZcDBE7nvC3tVqRpcvFa d7XQ== 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; bh=Qn3g9zGw1UtkwGSU6Ar5PqfpXTLYLYsn6PNYcxtVBgs=; b=k23zxKBUo2uqUQI4MfqBSPQYQc/Ra69v72Xr8RQPsDw9foCD/YuZDKVZuyLl/1MQSJ u3q/ERfFC9MDS0uf250MXRP0WTcySXl1a0hbCj1XcV7yW5E25XynIPJ7iepigUk5KXF4 R9BQbcssOVkJkqVS9d8LRe6ORQqyozwqoj6rwhVr15aHX+IIlaaUpyQuV/slpyN4xZnX h2lhKc0096qf3mmQAzE+O1s9ojyNTMA46/FrjqMWjWmwxz1fGcj9mSPK+LaWur2S1umW eePWHBqOGYI/ijd+UjB8M77Ld8GDnvcupbCs16QjPirGjVEm0COwyZVPLnHHDllrAhAG 231Q== X-Gm-Message-State: AMCzsaWsz+zyPhUSccFOSOAZr9H3uHgca/Gur+qwiAEbZJWnpyZEbdRT W9XI/c5K9QHwve42U28fqNKvepSy+VynJ7B3deioGA== X-Google-Smtp-Source: ABhQp+SbNgj/FpJ6ZYYSpQLgObe9c72gpeJZ/KmwxVZQ2uGQ4QOl0V6d2sW6oTAvIC0hly1taz1hNYMnksRD2vfiexc= X-Received: by 10.223.166.119 with SMTP id k110mr14303477wrc.182.1508871776109; Tue, 24 Oct 2017 12:02:56 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.156.209 with HTTP; Tue, 24 Oct 2017 12:02:55 -0700 (PDT) In-Reply-To: <20171024133026.uovvzdbnamnzoknv@annexia.org> References: <86o9p2ywgc.fsf@gmail.com> <20171020113815.GD32138@nunchakus.loria.fr> <20171024133026.uovvzdbnamnzoknv@annexia.org> From: "Petter A. Urkedal" Date: Tue, 24 Oct 2017 21:02:55 +0200 Message-ID: To: caml-list Content-Type: text/plain; charset="UTF-8" Subject: Re: [Caml-list] What if exn was not an open type? On 24 October 2017 at 15:30, Richard W.M. Jones wrote: > Since I first used OCaml I have wished for a simple (and type safe) > return statement. It's possible to wrap a bit type (and exception) safety about exceptions used for return: val with_return : (('a -> 'b) -> 'a) -> 'a let with_return (type b) f = let exception Return of b in try f (fun y -> raise (Return y)) with Return y -> y E.g. with_return (fun return -> List.iter (function 0 -> () | i -> return i) [0; 0; 24; 0]; -1);;