带有ocamlbuild的模块包

带有ocamlbuild的模块包,ocaml,ocamlbuild,Ocaml,Ocamlbuild,我有以下文件层次结构: foo.mlpack Foo/ bar.ml baz.ml foo.ml 我希望能够做到以下几点: let () = Foo.Bar.some_func1 (); Foo.Baz.some_func2 (); Foo.some_func3 () 我如何告诉ocamlbuild在创建foo模块时考虑foo.ml 编辑1 多亏了daniel-bünzli的回答,我能够做我想做的事。现在,我处于以下场景中: _tags foo.mllib foo.

我有以下文件层次结构:

foo.mlpack
Foo/
   bar.ml
   baz.ml
foo.ml
我希望能够做到以下几点:

let () =
  Foo.Bar.some_func1 ();
  Foo.Baz.some_func2 ();
  Foo.some_func3 ()
我如何告诉ocamlbuild在创建
foo
模块时考虑
foo.ml

编辑1 多亏了daniel-bünzli的回答,我能够做我想做的事。现在,我处于以下场景中:

_tags

foo.mllib
foo.ml
Foo/
   bar.ml
   baz.ml

toto.mllib
toto.ml
Toto/
    ...
    bar.ml
    ...
现在的问题是,
Toto.Bar
似乎被
Foo.Bar
挡住了。我无法访问
Toto.Bar
的内容

编辑2 好的,事实上这不是一个真正的问题

我刚刚重命名了
Foo/bar.ml
->
Foo/fooBar.ml

因此,我在
foo.ml
中有以下内容:

module Bar = FooBar

如果我理解正确的话,Jane Street的人在
Core\u kernel
中使用
Core\u list
和其他一些模块做同样的事情。

不要使用
mlpack

只需按如下方式定义foo.ml:

module Bar = Bar
module Baz = Baz
let some_func3 () = ...
然后用

Foo

别忘了
:将
包含在
\u标签
文件中。

不要使用
mlpack

只需按如下方式定义foo.ml:

module Bar = Bar
module Baz = Baz
let some_func3 () = ...
然后用

Foo

别忘了
:在你的
\u标签
文件中包含

谢谢,我正在尝试。假设我还有
/Toto/bar.ml
。它会与
/Foo/bar.ml
冲突吗?在我上面的评论中提到的情况下,此方法似乎不起作用。谢谢,我现在正在尝试。假设我还有
/Toto/bar.ml
。它会与
/Foo/bar.ml
冲突吗?在我上面的评论中提到的情况下,此方法似乎不起作用。