Variant型を既存の異なる型の集合体として定義できるモジュール(Ocaml 3.12)を書きたいのですが
0からNのタイプである可能性があるため、変数リストまたはセット
それはこのように見えるかもしれません:
type newtype = Type0 of type0 | Type1 of type1 | ... | TypeN of typeN
もちろん、その作成を因数分解したい
最初に、ファンクターによってパラメーター化されたモジュール「Composite」を作成しようとしました。
module Composite ( T0 : sig type t end ) ( T1 : sig type t end ) =
struct
type t = T0.t | T1.t
end
最初の難しさ:ファンクターの変数リストを「コンポジット」モジュールに渡すにはどうすればよいですか?
これは続行するための良い方法ですか?
edit1:バリアントにより、XORタイプ定義を定義できます(T0またはT1のいずれかですが、両方ではありません)。ORタイプ定義(T0またはT1、あるいはその両方)を定義するにはどうすればよいですか?