有人可以解释一下以下同义词的含义以及如何阅读它:
type TCM a = ErrorT String (StateT MyEnv IO) a
到目前为止我能够理解的内容:
我们说我们为某种类型引入了新名称,现在我们说我们称之为 TCM,它有一些参数 a
我们有值构造函数 ErrorT(是什么产生了 ErrorT?),它接受三个参数:String、(StateT MyEnv IO) 和
(StateT MyEnv IO) - 我们在这里说我们有值构造函数 StateT 和 args MyEnv 和 IO。但是这种类型是做什么的?
我对吗?谁能解释一下它是如何工作的?感谢您的任何回复。
编辑:也许有人可以帮助我。我的程序中有以下函数来评估整数:
ms_exp :: Exp -> TCM ()
ms_exp (EInt integer) = do
return integer
它有这样的错误:
Couldn't match expected type `()' with actual type `Integer'
有什么提示吗?