Ocaml:导出mli文件中的类型

时间:2011-02-02 21:57:53

标签: ocaml

我有一个文件context.ml,其中定义了一个地图

module CtxMap = Map.make(struct type t = int let compare = compare end)

以及类型为map_get

的函数CtxMap.key -> 'a CtxMap.t -> 'a

如何将CtxMap声明添加到context.mli文件中? 我无法找到办法,因为mli文件不能包含代码。

2 个答案:

答案 0 :(得分:8)

module CtxMap : Map.S with type key = int

在ocaml提供的map.ml文件中,仿函数的签名名称为Skey是您要向外部模块公开的唯一抽象类型。

答案 1 :(得分:6)

作为参考,您可以随时执行:

ocamlc -i -c context.ml

将默认的.mli文件输出到stdout。唯一的问题(在您的情况下)是它扩展了地图的签名。