OCAML模块类型和模块编译

时间:2017-08-08 01:32:42

标签: module compilation ocaml

1)我有签名

module type UINTSIG=
sig
type t
val create: t->t
end

2)我想创建两个使用上述签名的模块

理想情况下,我希望将签名保存在1中,与使用1中签名的模块的实现和签名文件分开。 我的问题是

A)我应该把签名放在上面的1中。我应该把它放在uintsig.mli文件中吗? B)我如何在1?

中使用签名的模块的.mli / ml文件中表达

1 个答案:

答案 0 :(得分:3)

将模块类型定义放入名为uintsig.mli的文件中是合理的。

然后,您可以通过名称Uintsig.UINTSIG从其他文件中引用模块类型。

(作为旁注,模块类型在我看来并不是很有根据。如果没有类型值,就无法创建t类型的值t。但它显然只是一个例子。)