如果我有一些变体类型
foo
:
type foo =
| A
| B of string
并且我想创建一个new变体类型
bar
,看起来与foo
完全相同,但是使用新的构造函数(任意,例如C of float * int
),有没有一种方法可以定义它,而无需写出完整的 type bar = A | B of string | C of float * int
?
我不知道是否可以使用常规变体类型来完成,但可以使用多态变体类型来完成:
# type foo = [ `A | `B of string ]
type bar = [ foo | `C of float * int ];;
type foo = [ `A | `B of string ]
type bar = [ `A | `B of string | `C of float * int ]