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 7D4F8BCAB for ; Thu, 12 May 2005 17:26:35 +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 j4CFQZn4003544 for ; Thu, 12 May 2005 17:26:35 +0200 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id RAA08129 for ; Thu, 12 May 2005 17:26:34 +0200 (MET DST) Received: from mail.eecs.harvard.edu (bowser.eecs.harvard.edu [140.247.60.24]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j4CFQYZg003541 for ; Thu, 12 May 2005 17:26:34 +0200 Received: from localhost (localhost.eecs.harvard.edu [127.0.0.1]) by mail.eecs.harvard.edu (Postfix) with ESMTP id 6F2A53544A; Thu, 12 May 2005 11:26:33 -0400 (EDT) Received: from mail.eecs.harvard.edu ([127.0.0.1]) by localhost (bowser.eecs.harvard.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 49927-10; Thu, 12 May 2005 11:26:33 -0400 (EDT) Received: from labrador.eecs.harvard.edu (labrador.eecs.harvard.edu [140.247.60.247]) by mail.eecs.harvard.edu (Postfix) with ESMTP id 3B1F2353ED; Thu, 12 May 2005 11:26:33 -0400 (EDT) Received: by labrador.eecs.harvard.edu (Postfix, from userid 32074) id 35AAB1EB0F2; Thu, 12 May 2005 11:26:33 -0400 (EDT) To: ocaml Cc: Markus Mottl Subject: Re: [Caml-list] Renaming structures during inclusions? In-reply-to: References: Comments: In-reply-to Markus Mottl message dated "Wed, 11 May 2005 11:44:15 -0400." Date: Thu, 12 May 2005 11:26:31 -0400 From: Norman Ramsey Message-Id: <20050512152633.35AAB1EB0F2@labrador.eecs.harvard.edu> X-Virus-Scanned: by amavisd-new at eecs.harvard.edu X-Miltered: at concorde with ID 428375AB.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 428375AA.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 pubs:01 ml-like:01 ...:98 ...:98 imho:01 signatures:01 structures:01 structures:01 eecs:01 eecs:01 modules:01 caml:02 renaming:02 renaming:02 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.2 X-Spam-Level: > [example] is not possible, because the names for type t in M1 and M2, > and the module names for module Std clash... > > The only solution that seems to make sense and does not impose > excessive work on the user is, IMHO, to provide for a facility to > rename types and modules... Kathleen Fisher and Paul Govereau and I have been working out a detailed proposal, but operating primarily on signatures, not structures: http://www.eecs.harvard.edu/~nr/pubs/els-abstract.html In some cases (such as renaming to avoid collisions), these operations extend nicely to the structure level. But in others, particularly meet and join, extension to structures is not obvious. We would certainly be very interested in hearing from Caml programmers whether you think our proposed extensions meet your needs. Norman P.S. We've made no effort to avoid introducing new syntax---at the present stage, we are most interested in coming up with a good design for ML-like module systems. Figuring out how to fit the design into an existing language with minimal disruption is a separate question.