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 DAB057EEBF for ; Wed, 19 Aug 2015 15:46:43 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of oleg@okmij.org) identity=pra; client-ip=66.39.3.114; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="oleg@okmij.org"; x-sender="oleg@okmij.org"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of oleg@okmij.org designates 66.39.3.114 as permitted sender) identity=mailfrom; client-ip=66.39.3.114; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="oleg@okmij.org"; x-sender="oleg@okmij.org"; 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@mail1.g3.pair.com) identity=helo; client-ip=66.39.3.114; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="oleg@okmij.org"; x-sender="postmaster@mail1.g3.pair.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AQAQC+h9RVnHIDJ0Jdg29pv0uFewKBPkwBAQEBAQESAQEBAQEICwkJIS6EJAIEOj8bITQFiQoN0FwBAQEHAgEfi1OEMVkHF4MBgRQFhWyHZ4dRgUODQYdmA4FKRm+Cd5Q7hDJiAYEEgUcBAQE X-IPAS-Result: A0AQAQC+h9RVnHIDJ0Jdg29pv0uFewKBPkwBAQEBAQESAQEBAQEICwkJIS6EJAIEOj8bITQFiQoN0FwBAQEHAgEfi1OEMVkHF4MBgRQFhWyHZ4dRgUODQYdmA4FKRm+Cd5Q7hDJiAYEEgUcBAQE X-IronPort-AV: E=Sophos;i="5.15,710,1432591200"; d="scan'208";a="174121318" Received: from mail1.g3.pair.com ([66.39.3.114]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/ADH-AES256-SHA; 19 Aug 2015 15:46:42 +0200 Received: from Magus.sf-private (fortigate.sf.ecei.tohoku.ac.jp [130.34.188.206]) by mail1.g3.pair.com (Postfix) with ESMTPSA id 6423533F49; Wed, 19 Aug 2015 09:46:39 -0400 (EDT) Date: Wed, 19 Aug 2015 22:55:26 +0900 From: Oleg To: gabriel.scherer@gmail.com Cc: caml-list@inria.fr Message-ID: <20150819135526.GA2204@Magus.sf-private> Mail-Followup-To: Oleg , gabriel.scherer@gmail.com, caml-list@inria.fr MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.22 (2013-10-16) Subject: Re: [Caml-list] destructive local opens [Since this discussion still continues, I think I will comment on Gabriel's comment after all.] "It is remarkable that programming languages have avoided introducing explicit weakening (the popping of a symbol out of scope) for now, and I think it is a property that should be preserved. We're not yet ready to go there." Actually there have been proposals to go into that direction, about 30 years ago. http://research.microsoft.com/lampson/39-Pebble/39-PebbleAbstract.htm Please look at p 287 of the paper: ``Pebble also has an anti-LET, which impoverishes the environment instead of enriching it.'' This is exactly the issue under discussion in this thread. [It is amazingly that the paper tackles the issues we are still struggling with today, including dependent types. It reads surprisingly modern...] There is an independent motivation for restricting the environment: syntactic conditional independence. If two stochastic expressions share no variables, the are independent and conditionally independent. Alas, this syntactic test -- which David McAllister likes very much [see his presentation at the workshop on probabilistic programming at NIPS 2008] -- has limited applicability since many expressions are in the scope of many let-bindings (even though a particular expression depends on a fraction of all the bindings in scope). It would be great to have a construct to remove bindings from scope, to strengthen so to speak.