0
想象一下,我有一系列模塊A1..An
B1..Bn
所有模塊都是完整的編譯單元。現在我定義與這些模塊的兩個新模塊作爲嵌套:在ocaml中包含模塊中的所有模塊
(* A.mli *)
module A : sig
module A1
...
module An
end
(* A.ml *)
module A1 = A1
..
module An = An
(* B.mli *)
module B : sig
open A
module B1
...
module Bn
end
(* B.ml *)
module B1 = B1
..
module Bn = Bn
從而原始模塊是再利用模塊別名導出。請注意,B
中的模塊可能會引用A1..An
中的模塊中的類型!
現在,我想創建一個新的模塊AB
使得簽名是:
module AB : sig
module A1
...
module An
module B1
...
module Bn
end
但是我不想傾聽所有單獨的模塊,只需再出口的內容。也不允許使用-open
。我能想出的最好的是:
module AB : sig
include module type of struct include A end
include module type of struct include B end
end
但是當我們失去我們說,類型A.A1.t
和A1.t
之間的聯繫,這將失敗。有沒有辦法實現我想要的?謝謝。