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 9CFB07EF5E for ; Mon, 25 Jul 2016 22:03:54 +0200 (CEST) IronPort-PHdr: 9a23:4vuQehSFtr389RBYufmHIgMOsNpsv+yvbD5Q0YIujvd0So/mwa64bBeN2/xhgRfzUJnB7Loc0qyN4vimBzVLuM3Q+Fk5M7V0HycfjssXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aJBzzOEJPK/jvHcaK1oLshrj0pcSYOl4ZzBOGIppKZC2sqgvQssREyaBDEY0WjiXzn31TZu5NznlpL1/A1zz158O34YIxu38I46Fp34d6XK77Z6U1S6BDRHRjajhtpZ6jiR6WdhOO/HwHGkgSkx1QBBXB6wqyCoz8tir9ru1g8CafNMzyC7szXGLxwb1sTUrEgSEGOjoO2vXRmMhxxPZXqRSgqhg5yZPZZpORNdJzZLnUYdIDWGcHVcYHBH8JOZ+1c4ZaV7lJBu1ftYSo4gJW9RY= Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=daniel.buenzli@erratique.ch; spf=None smtp.mailfrom=daniel.buenzli@erratique.ch; spf=None smtp.helo=postmaster@smtp.webfaction.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=pra; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=mailfrom; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@smtp.webfaction.com) identity=helo; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="postmaster@smtp.webfaction.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CxAQCYb5ZXf0pWN0pcv3WGHQKBfhABAQEBAQEBAREBAQkLCwkXMYIyBAESAYITAQQBI1YFCwsODAImAgJHEAYbiCAIBKgijVcBAQgBAQEBI4EBiHOBA4RAgwErgi8BBJkomDUOhWuQITWEFIlJAQEB X-IPAS-Result: A0CxAQCYb5ZXf0pWN0pcv3WGHQKBfhABAQEBAQEBAREBAQkLCwkXMYIyBAESAYITAQQBI1YFCwsODAImAgJHEAYbiCAIBKgijVcBAQgBAQEBI4EBiHOBA4RAgwErgi8BBJkomDUOhWuQITWEFIlJAQEB X-IronPort-AV: E=Sophos;i="5.28,420,1464645600"; d="scan'208";a="185911178" Received: from mail6.webfaction.com (HELO smtp.webfaction.com) ([74.55.86.74]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 25 Jul 2016 22:03:53 +0200 Received: from [192.168.5.63] (235-233.dsl.iskon.hr [89.164.235.233]) by smtp.webfaction.com (Postfix) with ESMTP id 39D5320E8DE0; Mon, 25 Jul 2016 20:03:50 +0000 (UTC) Date: Mon, 25 Jul 2016 22:03:48 +0200 From: =?utf-8?Q?Daniel_B=C3=BCnzli?= To: Spiros Eliopoulos Cc: OCaml Message-ID: In-Reply-To: References: <8B3345BC17954C9F8DC59E1C0AFBE09D@erratique.ch> <169BD7F8D4244E4DBEA9861FD6EDFB00@erratique.ch> <7DF0D33A403A4B41A5E2AAEAA6F6E06E@erratique.ch> X-Mailer: sparrow 1.6.4 (build 1178) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Subject: Re: [Caml-list] ANN: angstrom Le lundi, 25 juillet 2016 =C3=A0 21:37, Spiros Eliopoulos a =C3=A9crit : > While such a design sometimes benefits the system _as a whole_, it certai= nly comes at a cost. In the case where clients are meant to explicitly hand= le parse errors and restart the parse _through control inversion_, the cost= is the compositionality. [=E2=80=A6] > For supporting composition, it's certainly better than control inversion. The point is that clients are usually parsers themselves. You are not actua= lly loosing compositionnality by supporting what you call "control inversio= n", you are increasing it by allowing the parsers to be used differently ac= cording to the context.=20=20 A simple example is contrasting parsing gigabytes of geojson data where I m= ight not consider an error of the underlying character stream as a catastro= phic error and opt to continue the decode versus an implementation of the J= OSE framework in which I really want to treat any sort of error as a catast= rophic one.=20=20 Best, Daniel