MetaOCaml非限定构造函数 类型t=A;; .

MetaOCaml非限定构造函数 类型t=A;; .,ocaml,metaocaml,Ocaml,Metaocaml,以下是官方解释- 我非常模糊的猜测是,这种限制来自于需要确保在编译时和运行时在分段代码中引用时使用相同的变量定义(因为相同的代码可以并且将在运行时的不同时间点编译),通过将类型声明放在单独的模块中,编译器会对它们进行哈希运算,并对它们进行检查,同时检查接口匹配情况。我也认为阴影的可能性在这里起到了一定的作用 type t = A;; .<A>.;;

以下是官方解释-

我非常模糊的猜测是,这种限制来自于需要确保在编译时和运行时在分段代码中引用时使用相同的变量定义(因为相同的代码可以并且将在运行时的不同时间点编译),通过将类型声明放在单独的模块中,编译器会对它们进行哈希运算,并对它们进行检查,同时检查接口匹配情况。我也认为阴影的可能性在这里起到了一定的作用

type t = A;;
.<A>.;;