带有ocamlbuild的模块包

时间:2014-08-25 12:26:01

标签: ocaml ocamlbuild

我有以下文件层次结构:

foo.mlpack
Foo/
   bar.ml
   baz.ml
foo.ml

我希望能够做到以下几点:

let () =
  Foo.Bar.some_func1 ();
  Foo.Baz.some_func2 ();
  Foo.some_func3 ()

如何在创建foo.ml模块时告诉ocamlbuild考虑Foo

编辑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_kernelCore_list以及其他一些模块中做同样的事情。

1 个答案:

答案 0 :(得分:4)

不要使用mlpack

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

module Bar = Bar
module Baz = Baz
let some_func3 () = ...

然后只需使用

定义.mllib
Foo

请勿忘记<Foo> : include文件中的_tags