在名为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
模块内部,抽象类型是具体的。我们的问题是,如何再次使该对象抽象化,以便可以将其传递到另一个模块中?