OCaml:不使用.mli文件的单文件模块签名定义?

OCaml:不使用.mli文件的单文件模块签名定义?,ocaml,Ocaml,使用一组生成的OCaml文件,对于这些文件,定义顶级模块的签名将更简单,而无需使用与嵌套模块相同的.mli文件。例如,在Mymodule.ml中,您可以编写如下内容: module self/this module : sig ... (* contents of the mli file *) end = struct ... end 但是我找不到语法来执行它。甚至可能吗?您必须执行以下操作。我真的不知道为什么这“更容易”,也许你应该提供更多的细节,为你指明正确的方向 module X :

使用一组生成的OCaml文件,对于这些文件,定义顶级模块的签名将更简单,而无需使用与嵌套模块相同的.mli文件。例如,在Mymodule.ml中,您可以编写如下内容:

module self/this module : sig
... (* contents of the mli file *)
end =
struct
...
end

但是我找不到语法来执行它。甚至可能吗?

您必须执行以下操作。我真的不知道为什么这“更容易”,也许你应该提供更多的细节,为你指明正确的方向

module X : sig ... end = 
  struct
    ...
  end
include X

顺便说一句,处理一半的文件比处理一半的文件更简单。mli文件是caml light的遗物,我希望能够为所有类型的模块(包括顶级模块)统一定义接口。