2015-06-28 54 views
3

在OCaml中,如果您的項目有一個名爲code.ml的文件,您可以使用模塊名稱代碼在其他文件中引用它。我想知道如果你能夠以類似的方式引用它定義的簽名,你是否定義了一個.mli文件。例如,如果你有一個名爲wow.mli,你可以有申報參考在頂層文件中定義的模塊類型

module Func(St : Wow) = struct ... end 

有沒有辦法做類似的規定另一個文件?

回答

3

這個工作對我來說:

module Func(St: module type of Wow) = struct ... end 

詳細這裏就是我所做的:

$ cat wow.mli 
val f : int -> int 
$ cat m.ml 
module Func (St: module type of Wow) = struct let f x = St.f x end 
$ ocamlopt -c wow.mli 
$ ocamlopt -c m.ml 
+0

如果我在另一個文件中做「模塊類型本功能=模塊類型Func鍵的」它聲稱自己是簽名不匹配。 – dalastboss

+0

(如果你需要幫助,你必須展示你的代碼,我想。) –