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 RAA08653; Tue, 27 Mar 2001 17:12:22 +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 RAA08649 for ; Tue, 27 Mar 2001 17:12:21 +0200 (MET DST) Received: from mail2.microsoft.com (mail2.microsoft.com [131.107.3.124]) by concorde.inria.fr (8.11.1/8.10.0) with SMTP id f2RFCIn02388 for ; Tue, 27 Mar 2001 17:12:18 +0200 (MET DST) Received: from 157.54.9.108 by mail2.microsoft.com (InterScan E-Mail VirusWall NT); Tue, 27 Mar 2001 06:37:58 -0800 (Pacific Standard Time) Received: from red-msg-04.redmond.corp.microsoft.com ([157.54.12.74]) by inet-imc-05.redmond.corp.microsoft.com with Microsoft SMTPSVC(5.0.2195.2883); Tue, 27 Mar 2001 06:38:03 -0800 Content-Class: urn:content-classes:message Subject: RE: [Caml-list] recursive modules redux, & interface files MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Tue, 27 Mar 2001 06:38:02 -0800 X-MimeOLE: Produced By Microsoft Exchange V6.0.4418.65 Message-ID: <0C682B70CE37BC4EADED9D375809768A02DB1E8B@red-msg-04.redmond.corp.microsoft.com> Thread-Topic: [Caml-list] recursive modules redux, & interface files Thread-Index: AcC2nHRVCIA90LKZTyuNKHjQ6haHqwAGoPtw From: "Don Syme" To: "Xavier Leroy" Cc: X-OriginalArrivalTime: 27 Mar 2001 14:38:03.0415 (UTC) FILETIME=[877DAA70:01C0B6CB] Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk > > Isn't it feasible to annotate elements of signatures with=20 > something that > > indicates that an identifier really is bound to a value,=20 > rather than a > > module?? i.e. >=20 > You probably meant "rather than a result of an arbitrary computation". Yes, sorry. > Yes, it can be done this way, and I believe such annotations in > signatures are necessary for a full treatment of recursion between > modules (the Holy Grail :-). However, they also pollute signatures > with "implementation details". I'm not sure this "pollution" is really at that bad, is it? Users always have the option of _not_ revealing the extra detail, though with the result that they can't do cross-module recursion (or at least they don't get a guarantee that all the runtime dynamic checks that verify that data is initialized before use=20 succeed). And OCaml already have "external" in interfaces, which only gives added performance, not extra expressive power. Phase distinction annotations seem as least as useful in practice, and a whole lot simpler than the other techniques mentioned.... It seems a whole lot better than having users roll their own "unsafe" phase distinctions by hacking in "ref" indirections.... And if a different, better solution was found later, then, to use my suggested notation, you could just revert=20 "value" to mean the same as "expr". Cheers, Don ------------------- To unsubscribe, mail caml-list-request@inria.fr. Archives: http://caml.inria.fr