如果我有一个包含
的实现(.re
)文件
module IntMap =
Map.Make {
type t = int;
let compare = compare;
};
type foo = IntMap.t string;
如何将foo
的签名添加到接口(.rei
)文件中?与OCaml的类比
module IntMap = Map.S with type key = int
type foo = string IntMap.t
我原以为
module IntMap =
Map.S {
type t = int;
};
type foo = IntMap.t string;
但这会导致{
语法错误。
答案 0 :(得分:1)
我怀疑您问题的根本原因是您发布的OCaml代码无效。它应该是
module IntMap: Map.S with type key = int
等效的原因是
module IntMap: Map.S with type key = int;
type foo = IntMap.t string;
差别不大:)
此外,如果您不了解它,reason-tools是一个很棒的工具,可以在Reason和OCaml之间进行转换。它确实需要有效的输入;)