次の同義語の意味と読み方を誰か説明してくれませんか?
type TCM a = ErrorT String (StateT MyEnv IO) a
今までに理解できたこと:
あるタイプに新しい名前を導入すると言い、今はそれをTCMと呼び、いくつかのパラメータaを持っていると言います
String、(StateT MyEnv IO)、および
(StateT MyEnv IO) - ここでは、値コンストラクタ StateT と引数 MyEnv および IO があると言います。しかし、このタイプは何を作りますか?
私は正しいですか?誰かがそれがどのように機能するか説明してもらえますか? 返信ありがとうございます。
編集:誰かがこれについても私を助けてくれるかもしれません。私のプログラムには、整数を評価する次の関数があります。
ms_exp :: Exp -> TCM ()
ms_exp (EInt integer) = do
return integer
そして、そのようなエラーがあります:
Couldn't match expected type `()' with actual type `Integer'
ヒントはありますか?