我想将我的项目从平面文件/模块层次结构重构为更嵌套的层次结构。这是我现在拥有的:
这是我想要得到的:
OCaml具有从文件名到模块名的自动映射,但似乎没有用于目录和嵌套文件的自动映射。
我可以有一个包含必要子模块的"pie.ml"和"fruit.ml"文件:
但我不知道如何解决
我尝试研究 Core 库,它有一个嵌套模块的
. # Modules:
├── fruit_apple.ml # Fruit_apple
├── fruit_lemon.ml # Fruit_lemon
├── pie_apple.ml # Pie_apple
└── pie_lemon.ml # Pie_lemon
这是我想要得到的:
. # Modules:
├── fruit
│ ├── apple.ml # Fruit.Apple
│ └── lemon.ml # Fruit.Lemon
└── pie
├── apple.ml # Pie.Apple
└── lemon.ml # Pie.Lemon
OCaml具有从文件名到模块名的自动映射,但似乎没有用于目录和嵌套文件的自动映射。
我可以有一个包含必要子模块的"pie.ml"和"fruit.ml"文件:
(* pie.ml *)
module Apple = struct
include Apple
end
module Lemon = struct
include Lemon
end
但我不知道如何解决
pie/apple.ml
和 fruit/apple.ml
之间的歧义。我尝试研究 Core 库,它有一个嵌套模块的
Core.Bool
,Core.Bag
等等,但我找不到一个 core.ml
文件,我本以为它会集成所有子模块。
-pack
选项进行打包,以便每个模块自动封装在Core
模块中。你要找的是std.ml
。 - undefined