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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 85293BBAF for ; Fri, 21 May 2010 17:47:52 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoEBAJZH9ktKfVK2mGdsb2JhbACBP5t8XQgVAQEBAQEICQwHESKtPYIChTYuiE8BAQMFhQ0E X-IronPort-AV: E=Sophos;i="4.53,279,1272837600"; d="scan'208";a="51029732" Received: from mail-wy0-f182.google.com ([74.125.82.182]) by mail3-smtp-sop.national.inria.fr with ESMTP; 21 May 2010 17:47:52 +0200 Received: by wye20 with SMTP id 20so833507wye.27 for ; Fri, 21 May 2010 08:47:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=/GRTInvcJkNLw4BqWs2z+pDRF6kMaUYbrmSK704+kc8=; b=sdbTw6TAtTrkNj96Mpwu4cQlpMaMdmqeGmyYqufJMF/TOobzGKe9aKBACJs5Nobds6 ouNVfbAVhvO9PtENnOPs1/amc+6CdbJwMYFYfmcArLoOs5WpDc2x+Uvf85+/7dSAJfQ7 Dxrm1mZ2QJH+5gz0maOOT7wb20omqXefRcUjE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=Paf0Sg+24+JAyAZ7X2RKNl0pfV6gXpsNaFQSaDRCIZoFEOv4TbtAsWGp96Lsu82oad KsO0FU1WHIO+qARt8u+i2EQfxWgazM6OZAVi0uGNGvtlrOitlDKKER0pGlnirfOWU8Qk k3yapOnsD48xNoFiEp389ika5A3oSV0XjG7uw= MIME-Version: 1.0 Received: by 10.216.159.8 with SMTP id r8mr962647wek.198.1274456550555; Fri, 21 May 2010 08:42:30 -0700 (PDT) Received: by 10.216.181.65 with HTTP; Fri, 21 May 2010 08:42:30 -0700 (PDT) In-Reply-To: References: Date: Fri, 21 May 2010 17:42:30 +0200 Message-ID: Subject: Re: [Caml-list] Private modules in packages From: Julien Signoles To: Ashish Agarwal Cc: Hans Ole Rafaelsen , Michael.Grunewald@laposte.net, caml-list@inria.fr Content-Type: multipart/alternative; boundary=0016e65a0212fa3f4004871c8907 X-Spam: no; 0.01; signoles:01 signoles:01 mli:01 mli:01 foo:01 foo:01 1975:98 1975:98 z-index:98 margin-top:98 line-height:98 font-size:98 inline:01 caml-list:01 text-align:98 --0016e65a0212fa3f4004871c8907 Content-Type: text/plain; charset=ISO-8859-1 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. -- Julien --0016e65a0212fa3f4004871c8907 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hello,

2010/5/21 Ashish Agarwal <agarwal1975@gmail.com= >
> 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 wan= t 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 counterpart= s of "friend methods" in OO languages.

--
Julien
--0016e65a0212fa3f4004871c8907--