在Ocaml Map Library中键入+'?

LBR*_*LBR 5 ocaml types module map

我正在使用Ocaml的内置Map库来处理问题集,而我无法访问地图本身的数据类型.这应该是字典的第三个实现(前两个是列表和不平衡的二叉搜索树),我必须实现的部分函数是"type dict",它是实际字典的数据类型.对于列表,键入dict是(D.key*D.value)列表; 对于树,类型dict是Empty | 分支((D.key*D.value),dict,dict).Ocaml文档说:

type +'a t 
The type of maps from type key to type 'a.
Run Code Online (Sandbox Code Playgroud)

这似乎是我需要的,但我似乎无法正确使用它.顺便说一句,M是我的Map.Make模块.我试过了

type dict = M.t
type dict = M.+D.value t
type dict = M.+
Run Code Online (Sandbox Code Playgroud)

但我不断收到错误消息.有人可以帮忙吗?非常感谢!

gas*_*che 7

+是方差注释,它不是名称的一部分.参数化类型的语法param type(param, param, ...) typeOCaml中:int list,(int, string) Hashbl.t.你想要的是什么D.value M.t.