Types 如何在接口文件中使用函子的输出签名?

Types 如何在接口文件中使用函子的输出签名?,types,ocaml,reason,Types,Ocaml,Reason,如果我有一个包含以下内容的实现(.re)文件 module IntMap = Map.Make { type t = int; let compare = compare; }; type foo = IntMap.t string; 如何将foo的签名添加到接口(.rei)文件?与OCaml的类似 module IntMap=Map.S,类型key=int 类型foo=string IntMap.t 我原以为是这样的 module IntMap = Map.S

如果我有一个包含以下内容的实现(
.re
)文件

module IntMap =
  Map.Make {
    type t = int;
    let compare = compare;
  };

type foo = IntMap.t string;
如何将
foo
的签名添加到接口(
.rei
)文件?与OCaml的类似

module IntMap=Map.S,类型key=int
类型foo=string IntMap.t
我原以为是这样的

module IntMap =
  Map.S {
    type t = int;
  };

type foo = IntMap.t string;

但是这会导致
{

出现语法错误。我怀疑问题的根本原因是您发布的OCaml代码无效。应该是这样的

module IntMap: Map.S with type key = int
因此,原因相当于

module IntMap: Map.S with type key = int;
type foo = IntMap.t string;
没什么不同:)


另外,如果您不知道的话,这是一个很好的工具,可以为您在Reason和OCaml之间进行转换。不过它确实需要有效的输入;)

啊,谢谢。我的错误是1)引用OCaml的语法错误,2)尝试引用,这会在更正的OCaml中报告语法错误。