我有一个文件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文件不能包含代码。
答案 0 :(得分:8)
module CtxMap : Map.S with type key = int
在ocaml提供的map.ml
文件中,仿函数的签名名称为S
,key
是您要向外部模块公开的唯一抽象类型。
答案 1 :(得分:6)
作为参考,您可以随时执行:
ocamlc -i -c context.ml
将默认的.mli
文件输出到stdout。唯一的问题(在您的情况下)是它扩展了地图的签名。