Haskell中的IO a和IO(a)有什么区别?

What is the difference between IO a and IO (a) in Haskell?

Haskell中的IO(a)和IO a有什么区别?

例如:

IO (String) 对比 IO String

IO (Int) 对比 IO Int

我看过的大多数书籍在将类型放在 IO 之后之前将其括在括号中,但我并不清楚它们是否相同。

没有对编译器重要的区别。

通常在 Haskell 中,我们希望避免任何不必要的括号,因此 IO String 是首选样式。但是当然你确实需要 parens 例如IO (Maybe Int).