此代码给出“未绑定模块类型测试”:
module type Test = sig
val test : int -> (module Test)
end
我如何进行这项工作?
答案 0 :(得分:2)
返回与正在构造的模块相同的模块显然需要递归。但是,递归模块类型不直接允许仅递归模块。因此,解决方案是将模块类型包装在递归模块中:
package com.test.canvas;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
请注意,上面的代码使用经典技巧来避免两次编写没有任何运行时组件的模块类型。 然后,新的模块类型可用于:
module rec Test: sig
module type t = sig val test: int -> (module Test.t) end
end = Test