OCaml将抽象类型从一个模块传递到另一个模块

时间:2018-11-06 02:31:38

标签: ocaml

在名为State的模块中,我们有一个抽象类型t。现在,我们正在尝试制作一个完全独立的模块,其中包含一个接受State.t(其类型以State.t -> (* stuff *)开头)的函数。

但是,当我们尝试从State模块中调用该函数并传入类型t的对象时,会出现以下错误:

Error: This expression has type t but an expression was expected of type State.t
State.t is abstract because no corresponding cmi file was found in path.

我们认为发生这种情况是因为另一个模块期望使用抽象类型,但是在State模块内部,抽象类型是具体的。我们的问题是,如何再次使该对象抽象化,以便可以将其传递到另一个模块中?

0 个答案:

没有答案