我有以下文件层次结构:
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
?
感谢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
的内容。
好吧,实际上这不是一个真正的问题。
我刚刚重命名为Foo/bar.ml
- > Foo/fooBar.ml
。
所以我在foo.ml
中有以下内容:
module Bar = FooBar
如果我理解正确,来自Jane Street的人在Core_kernel
和Core_list
以及其他一些模块中做同样的事情。
答案 0 :(得分:4)
不要使用mlpack
。
只需按如下方式定义你的foo.ml:
module Bar = Bar
module Baz = Baz
let some_func3 () = ...
然后只需使用
定义.mllib
Foo
请勿忘记<Foo> : include
文件中的_tags
。