从 scalaz 导入 `IO`

Importing `IO` from scalaz

scala 2.11.6scalaz 7.1.1 上,我正在尝试获取此 example working from Learning scalaz

在 REPL 上,我无法导入必要的包来调用 IO.readLn

scala> import scalaz._, Scalaz._, effect._, IO._
<console>:7: error: not found: value effect
       import scalaz._, Scalaz._, effect._, IO._
                                  ^
<console>:7: error: not found: value IO
       import scalaz._, Scalaz._, effect._, IO._

看着 IO.scala,我不明白为什么我不能 import scalaz.effect.IO

那么,我怎样才能正确导入负责 IO 的包?

scalaz-effect 是一个单独的工件,您可能只依赖于 scalaz-core。您需要将此添加到构建配置中的 libraryDependencies(假设您使用的是 SBT):

"org.scalaz" %% "scalaz-effect" % "7.1.1"

只需确保版本与您的 scalaz-core 依赖项匹配。