From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id B46A4BCAB for ; Thu, 12 May 2005 19:10:01 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j4CHA11t016429 for ; Thu, 12 May 2005 19:10:01 +0200 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 TAA11759 for ; Thu, 12 May 2005 19:10:01 +0200 (MET DST) Received: from wproxy.gmail.com (wproxy.gmail.com [64.233.184.207]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j4CHA0VK000538 for ; Thu, 12 May 2005 19:10:00 +0200 Received: by wproxy.gmail.com with SMTP id 69so620326wra for ; Thu, 12 May 2005 10:09:59 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=ZNlsUILYSuGAVjDACJcN3VwF/lb4ONCROFtnhmbf14NUdrYzMaFa5igJY3dhNYQM9LhOnvxetoTCxf0ade9harPLKxdNhu5g9pgUdTFOhEME/OZJemo4I/CJ7TES5BFTZNOmmeOojG4F7qpg2m8OzRClWoqmIkrmDv1ChVc0lUo= Received: by 10.54.40.31 with SMTP id n31mr1243818wrn; Thu, 12 May 2005 10:09:58 -0700 (PDT) Received: by 10.54.22.11 with HTTP; Thu, 12 May 2005 10:09:58 -0700 (PDT) Message-ID: Date: Thu, 12 May 2005 13:09:58 -0400 From: Markus Mottl Reply-To: Markus Mottl To: ocaml Subject: [Caml-list] Renaming structures during inclusions? In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <20050512.102443.52652125.garrigue@math.nagoya-u.ac.jp> X-Miltered: at concorde with ID 42838DE9.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 42838DE8.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; markus:01 mottl:01 markus:01 mottl:01 caml-list:01 pubs:01 semantics:01 dependencies:01 ocaml:01 xavier's:01 ocaml:01 wrote:01 syntactic:01 signatures:01 structures:01 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on yquem.inria.fr X-Spam-Status: No, score=2.8 required=5.0 tests=INFO_TLD,LONGWORDS,RCVD_BY_IP autolearn=disabled version=3.0.2 X-Spam-Level: ** On 5/11/05, Jacques Garrigue wrote: > Well, somebody already worked out a real solution to this problem, at > least at the signature level: > http://www.eecs.harvard.edu/~nr/pubs/els-abstract.html Thanks for the link, this looks like a very interesting proposal. > The point is that once you have solved the signature level problem, > you can solve the module level problem: you just have to duplicate your > binding under a new name, and hide the old one with a signature > where the type is renamed. You could have syntactic sugar for that, > but the semantics is clear. Right, the operations on signatures and modules do not seem to be fundamentally different in nature. > So my take on this problem is that the above proposal, or something > equivalent, should be included in the language. I fully agree. We work on some fairly large projects here that have grown to many hundreds of modules written by different people and often having somewhat more complicated dependencies. This sometimes makes it difficult to express certain relationships between modules without jumping through hoops. Even though I think that OCaml supports "programming in the large" way better than any other language I know, it would surely benefit from some more improvements to the module language. Since module systems is one of Xavier's favourite research topics, I wonder what his point of view is. Any chance that we will see an even more expressive module language in OCaml in the forseeable future? Best regards, Markus -- Markus Mottl http://www.ocaml.info markus.mottl@gmail.com