You're right this is a linking issue and now the question is at which level you want to "link" your code. I do not see the point of including a cmo in another like you describe : i believe there are simpler and mainstream options. Maybe I miss some details about your problem ? Using findlib to help the linker is one way to do it, but if you insist on loading a single module then you have two other options : - code inclusion -> m4, camlmix, camlp4 or any preprocessor (not that ugly, but still) - the -pack option for combining several cmo in a single one (but then all your modules are included in a "toplevel" module) sorry if i still didn't get your problem ;o). ph. 2009/11/12 Guillaume Yziquel > Philippe Veber a écrit : > > Hi >> >> maybe you can have a look at findlib and its #require statement. For >> instance, pxp (xml related library) depends on many cma, but everything >> loads automagically when invoking #require : >> > > No, no, no... this is not the issue at all. My issue is not about loading > stuff with findlib, it's about including a .cmo into another .cmo. I'd like > to create a .cma with only a.ml, and not containing b.ml. > > It's not a toplevel issue, but a 'linking' issue. > > Thanks anyway. > > Guillaume. > > > > > 2009/11/12 Guillaume Yziquel >> >> Hello. >>> >>> Imagine I have a file named a.ml containing >>> >>> module C = struct >>> >>>> include B >>>> end >>>> >>>> and a file named b.ml containing the code >>> >>> let f x = x + 1 >>> When I compile everything to .cmo files, I cannot load a.cmo from the >>> toplevel without loading b.cmo beforehand. >>> >>> Is there a way to make the 'include B' statement to include the code of >>> the >>> B module in the C submodule directly so that it is not required to load >>> the >>> b.cmo file before loading the a.cmo file? >>> >>> That would be extremely useful to me... >>> >>> All the best, >>> >>> -- >>> Guillaume Yziquel >>> http://yziquel.homelinux.org/ >>> >>