0
私は一連のモジュールを持っているとします。A1..An
B1..Bn
すべてが完全なコンパイル単位です。今度は、これらのモジュールを入れ子にして2つの新しいモジュールを定義します。モジュール内のすべてのモジュールを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
のモジュールのタイプを参照することがあります。
module AB : sig
module A1
...
module An
module B1
...
module Bn
end
は、しかし、私はちょうど内容を再輸出するために、すべての個々のモジュールを聞きたくない:
は今、私は署名があるAB
ように、新しいモジュールを作成します。 -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
の間のリンクを失うしかし、これは失敗します。私が望むものを達成する方法はありますか?ありがとう。