From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id TAA16342 for caml-redistribution; Fri, 19 Nov 1999 19:17:31 +0100 (MET) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id PAA13899 for ; Fri, 19 Nov 1999 15:39:24 +0100 (MET) Received: from post.tepkom.ru (post.tepkom.ru [195.9.10.12]) by nez-perce.inria.fr (8.8.7/8.8.7) with ESMTP id PAA28753 for ; Fri, 19 Nov 1999 15:39:21 +0100 (MET) Received: (from msk@localhost) by post.tepkom.ru (8.9.3/8.9.3) id RAA25484 for caml-list@inria.fr.ANTIVIRUS; Fri, 19 Nov 1999 17:35:29 +0300 Received: from localhost (msk@localhost) by post.tepkom.ru (8.9.3/8.9.3) with ESMTP id RAA25458; Fri, 19 Nov 1999 17:35:28 +0300 X-Authentication-Warning: post.tepkom.ru: msk owned process doing -bs Date: Fri, 19 Nov 1999 17:35:28 +0300 (MSK) From: Anton Moscal To: Brian Rogoff cc: caml-list@inria.fr Subject: RE: Undefined labels In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: weis On Mon, 15 Nov 1999, Brian Rogoff wrote: > > This is the standard example for why we need a local open in the language. > > > > -Manuel > > Let me second that motion. Coming from Ada, I always wondered why OCaml > doesn't allow you to restrict the scope of open, instead of putting it > always at module level. This construction can be easy simulated by `let module' construction: let open M in E => let module _TEMP = struct open M; let __RES = E end in __RES I implement this conversion for my own use by camlp4 as syntax extension (with other local declarations: let type, let exception, etc.) Anton