2010/5/21 Goswin von Brederlow > 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. > You can do something like that (pure ocaml without any external script): === file baz.mli (outside the pack P) === module type Foo = sig ... (* my public values here *) end === file p.mli === module Foo: Baz.Foo === file foo.mli === include Baz.Foo ... (* my friend values *) === file foo.ml === ... (* all my internals: defining my public+friends+private values *) Hope this helps, Julien