我有两个模块。一个定义了一个变体类型:
module A = struct
type foo = Bar of material | Baz | Boo
(* other stuff *)
end
我希望能够foo
在另一个模块中使用 's 变体作为构造函数和左侧
module B = struct
type foo = A.foo (* I can abbreviate A.foo by assigning it a local alias *)
let f (x : foo) = match x with
| Bar m -> Bar (g m) (* Any way to abbreviate Bar and friends? *)
| Baz | Boo -> x
end
但是根据“引用命名对象”,我必须在变体名称前面加上一个模块路径:
let f (x : foo) = match x with
| A.Bar m -> A.Bar (g m)
| A.Baz | A.Boo -> x
有什么方法可以跳过避免使用缺少open
ing 的模块路径并从中提取所有其他内容A
?