From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 3CA6DBBAF for ; Fri, 21 May 2010 20:05:22 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnQDACto9kvZSMDqkWdsb2JhbACeDBUBAQEBCQsKBxEDH71VhRIE X-IronPort-AV: E=Sophos;i="4.53,279,1272837600"; d="scan'208";a="51630588" Received: from fmmailgate03.web.de ([217.72.192.234]) by mail2-smtp-roc.national.inria.fr with ESMTP; 21 May 2010 20:05:21 +0200 Received: from smtp06.web.de ( [172.20.5.172]) by fmmailgate03.web.de (Postfix) with ESMTP id 8A12515165E73; Fri, 21 May 2010 20:04:33 +0200 (CEST) Received: from [78.43.204.177] (helo=frosties.localdomain) by smtp06.web.de with asmtp (TLSv1:AES256-SHA:256) (WEB.DE 4.110 #4) id 1OFWaG-0001CV-00; Fri, 21 May 2010 20:04:33 +0200 Received: from mrvn by frosties.localdomain with local (Exim 4.71) (envelope-from ) id 1OFWaE-0004LU-QN; Fri, 21 May 2010 20:04:30 +0200 From: Goswin von Brederlow To: Julien Signoles Cc: Ashish Agarwal , Michael.Grunewald@laposte.net, caml-list@inria.fr Subject: Re: [Caml-list] Private modules in packages References: Date: Fri, 21 May 2010 20:04:30 +0200 In-Reply-To: (Julien Signoles's message of "Fri, 21 May 2010 17:42:30 +0200") Message-ID: <87eih5rv0x.fsf@frosties.localdomain> User-Agent: Gnus/5.110009 (No Gnus v0.9) XEmacs/21.4.22 (linux, no MULE) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: goswin-v-b@web.de X-Sender: goswin-v-b@web.de X-Provags-ID: V01U2FsdGVkX184gpMmhsxTwEl9TA1ApRwMYqAVeJLpTrS1EDcH 05HKBINw7S2irgLx4RRoPGe21lhdPX2MuxPFnmp8oKnvFC7EvL dM3aCVYvE= X-Spam: no; 0.00; signoles:01 signoles:01 mli:01 mli:01 foo:01 foo:01 1975:98 mfg:98 caml-list:01 functions:01 writes:01 modules:02 modules:02 module:03 internals:03 Julien Signoles writes: > Hello, > > 2010/5/21 Ashish Agarwal > > > write a script to generate the P.mli file > > Why do you need Bar.mli and Foo.mli at all? Just write the P.mli only. > > > If your pack is big, you may want to mask internals of Bar and Foo to others > modules of the pack. Actually, values exported in Bar/Foo but not in P exactly > are the module counterparts of "friend methods" in OO languages. But then, if you have methods in Bar and Foo visible inside the pack but not from outside, you can't just cat Bar.mli and Foo.mli into P.mli. You need to process it to remove the 'friends' functions. Doesn't batteries have some script for this? MfG Goswin