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 6792A7EEBF for ; Mon, 3 Aug 2015 16:24:24 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=pra; client-ip=74.55.86.74; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=mailfrom; client-ip=74.55.86.74; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@smtp.webfaction.com) identity=helo; client-ip=74.55.86.74; receiver=mail2-smtp-roc.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: A0DiAABheL9Vm0pWN0pbGQEBg1OEDLs3gkeDNgKBdgEBAQEBARIBAQEBAQgJCwkhLoQkAQEBAyNWEAsaAiYCAkcQBhuIJgS0eZVnAQEIAgEfgSKKLYRVMweCaS+BFAWUeYR7iRhGhj0PjQuDZIQkgzoBAQE X-IPAS-Result: A0DiAABheL9Vm0pWN0pbGQEBg1OEDLs3gkeDNgKBdgEBAQEBARIBAQEBAQgJCwkhLoQkAQEBAyNWEAsaAiYCAkcQBhuIJgS0eZVnAQEIAgEfgSKKLYRVMweCaS+BFAWUeYR7iRhGhj0PjQuDZIQkgzoBAQE X-IronPort-AV: E=Sophos;i="5.15,602,1432591200"; d="scan'208";a="172529510" Received: from mail6.webfaction.com (HELO smtp.webfaction.com) ([74.55.86.74]) by mail2-smtp-roc.national.inria.fr with ESMTP; 03 Aug 2015 16:24:23 +0200 Received: from [192.168.2.3] (cpc16-cmbg14-2-0-cust300.5-4.cable.virginm.net [86.6.157.45]) by smtp.webfaction.com (Postfix) with ESMTP id 935EF2113526; Mon, 3 Aug 2015 14:24:22 +0000 (UTC) Date: Mon, 3 Aug 2015 15:24:18 +0100 From: =?utf-8?Q?Daniel_B=C3=BCnzli?= To: Nils Becker Cc: Caml-list Message-ID: <8E1A640CE3374EB492981ADB0A2DA5C6@erratique.ch> In-Reply-To: <55BF75F6.1040006@bioquant.uni-heidelberg.de> References: <55BF6F1C.3050705@bioquant.uni-heidelberg.de> <55BF75F6.1040006@bioquant.uni-heidelberg.de> 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] destructive local opens Le lundi, 3 ao=C3=BBt 2015 =C3=A0 15:08, Nils Becker a =C3=A9crit : > It's possible that people actually want M.() to mean let open! more > often than let open. For me I think that's the case. If you are in the vector case, I don't think that's the case. With Gg [1] I= often had the following kind of subtly wrong code (can't remember the exac= t details but something similar):=20=20 let ox =3D V2.((dot v ox) * ox) in V2.(3 * ox + oy) The reality is that M.() is inherently dangerous, especially from an API ev= olution perspective where new identifiers with matching type may get introd= uced later leading to silent semantic changes in your code. So we should no= t encourage people to use M.!() as it's going to make the problem even more= acute. Besides we should have that 44 warning by default so that we see th= e problems, but for now it's impossible to live with 44 and a Gg like libra= ry. Best, Daniel [1] http://erratique.ch/software/gg