3

假设我有以下设置

module type FOO = sig type f val do_foo : f end
module type BAR = sig type b val do_bar : b end


module type FOOANDBAR =
  sig 
    include FOO
    include BAR
  end

现在我想(以一种很好的方式,也就是不复制接口,因此 FOO 和 BAR 仍然是子类型)强制执行类型 f 和类型 b 相同的限制。

在 OCaml 中是否有一种很好的方法可以做到这一点,可能使用一些与 include 关键字不同的方法?

谢谢!!-约瑟夫

4

1 回答 1

5
module type FOOANDBAR =
  sig 
    include FOO
    include (BAR with type b = f)
  end
于 2012-12-16T20:45:14.067 回答