以下 Haskell 代码段无法编译,我不知道为什么。
runCompiler :: TC -> IO ()
runCompiler tc = let cp' = cp in
do
cp'
return ()
where
cp = compileProg tc
我从 GHCi 收到以下错误:
Couldn't match expected type `IO a0' with actual type `String'
In a stmt of a 'do' block: cp'
In the expression:
do { cp';
return () }
In the expression:
let cp' = cp
in
do { cp';
return () }
任何想法如何使它编译。我不明白为什么它不接受 () 作为给定的最终值。