From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id JAA19270; Thu, 19 Sep 2002 09:58:30 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f 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 JAA19569 for ; Thu, 19 Sep 2002 09:58:29 +0200 (MET DST) Received: from colt.epita.fr (colt.epita.fr [62.23.180.27]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g8J7wS108044 for ; Thu, 19 Sep 2002 09:58:28 +0200 (MET DST) Received: from hermes.epita.fr (hermes.epita.fr [163.5.255.10]) by colt.epita.fr id g8J7wQm27858 for EPITA Paris France Thu, 19 Sep 2002 09:58:26 +0200 (CEST) Received: from goa.lrde.epita.fr (mail@goa.lrde.epita.fr [10.223.13.2]) by hermes.epita.fr id g8J7wQ326242 for EPITA Paris France Thu, 19 Sep 2002 09:58:26 +0200 (MEST) Received: from babylon.lrde.epita.fr ([10.223.13.55] helo=babylon ident=yann) by goa.lrde.epita.fr with esmtp (Exim 3.35 #1 (Debian)) id 17rwCi-00048q-00 for ; Thu, 19 Sep 2002 09:58:28 +0200 Content-Type: text/plain; charset="iso-8859-1" From: Yann =?iso-8859-1?q?R=E9gis-Gianas?= Organization: LRDE Subject: Fwd: Re: [Caml-list] mutually referencing compilation units Date: Thu, 19 Sep 2002 09:58:28 +0200 User-Agent: KMail/1.4.3 To: caml-list@inria.fr MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200209190958.28366.yann@lrde.epita.fr> Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Le Jeudi 19 Septembre 2002 05:09, John Max Skaller a =E9crit : > Xavier Leroy wrote: > > > Is the fact that two mutually referencing units can't be compiled > > > supposed to be a Good Thing? > > > > [..] > > However, there are deep semantical and > > type-theoretical reasons that make it hard to allow cross-module > > recursion in ML. This is actually a research area that is still > > largely open. > > [...] > The constraint only applies to open directives > and is related to name lookup, not typing. =09Linking of values are now well formalized in calculus like m-calculus = (Wells and Vestegaard) or CMS (Ancona and Zucca). The principal idea is to defin= e link between components and variables apart from their definition. Units = of Flatt or Felleisen are also a good example of implementation of this idea= =2E =09However, "deferred types" (which allows a way to obtain mutually recur= sive types across modules) are not managed in these formalisms The main proble= m with ML family's languages may be that they need a context to type terms = and that incomplete contexts leads to the impossibility of typing modules ...= I am not yet a specialist of the field but you can read the following artic= les to understand the general problem of mutually recursive modules (aka mixi= ns). J. B. Wells and Rene Vestergaard. Equational reasoning for linking with first-class primitive modules. 2000 Tom Hirschowitz and Xavier Leroy Mixin Modules in a Call-by-Value Setting 2001 D. Ancona and E. Zucca A calculus of module systems 2001 Karl Crary and Robert Harper and Sidd Puri What is a Recursive Module? 1999 - -- Yann Regis-Gianas ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners