类型方案的提取

Extraction of Type Scheme

我正在尝试提取一些我用 Coq 编写的文件系统代码。我想用 Haskell 的 IO Monad 替换我的 FileIO Monad。我的代码如下所示:

Variable FileIO : Type -> Type.
Variable sync : FileIO unit.

Extract Inlined Constant sync => "synchronize".
Extract Inlined Constant FileIO => "IO".

Recursive Extraction append.

替换sync没问题,但是当我尝试用IO替换FileIO时,出现以下错误:

Error: The type scheme axiom  FileIO needs 1 type variable(s).

此错误是什么意思,我该如何解决?

这可能是一个限制。您需要为 FileIO 提供一个参数,并且不允许内联它。

Extract Constant FileIO "x" => "IO x".