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 LAA24444 for caml-red; Tue, 16 Jan 2001 11:36:03 +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 PAA30552 for ; Mon, 15 Jan 2001 15:09:43 +0100 (MET) Received: from mrwall.kal.com (mrwall.kal.com [194.193.14.236]) by nez-perce.inria.fr (8.11.1/8.10.0) with SMTP id f0FE9gP23446 for ; Mon, 15 Jan 2001 15:09:42 +0100 (MET) Received: from mrwall.kal.com [194.193.14.236] (HELO localhost) by mrwall.kal.com (AltaVista Mail V2.0J/2.0J BL25J listener) id 0000_0045_3a63_04e6_e99a; Mon, 15 Jan 2001 14:10:46 +0000 Received: from somewhere by smtpxd Message-ID: <3145774E67D8D111BE6E00C0DF418B663B15F0@nt.kal.com> From: Dave Berry To: Brian Rogoff , Claudio Russo Cc: Dave Berry , Alain Frisch , Caml list , kfl@it.edu, sestoft@dina.kvl.dk Subject: RE: first class, recursive, mixin modules (was: RE: first class m odules) Date: Mon, 15 Jan 2001 14:13:29 -0000 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.0.1460.8) Content-Type: text/plain; charset="iso-8859-1" Sender: weis@pauillac.inria.fr ----Original Message----- From: Brian Rogoff [mailto:bpr@best.com] Sent: Friday, January 12, 2001 22:16 >That's no problem for me. Dave, in the case you mentioned, do you think >this would this be problematic? I couldn't guess from your description. This example has been bugging me all weekend; I can't reconstruct what it was. I think we wanted to write a pair of recursive functor applications, viz: structure S1 = F1 (S2) and S2 = F2 (S1); but I find it hard to believe that the two functors already existed in a form suitable to apply this way. More likely, I suspect, was that we wanted to make the minimum modification to each module hierarchy to put them into this form. In particular, we wanted to avoid having to extract a file to be shared at the bottom of the two hierarchies, on the grounds that this would break the abstractions we had set up. So what I would like from a recursive module feature is the ability to separately compile two functors and then mutually apply them, as above. (Or some equivalent using forward declarations, perhaps). I realise that in separately compiling the two functors I might produce a less efficient representation for the datatypes that are split across the two functors, but I could live with that. Dave.