【发布时间】:2017-05-23 14:56:11
【问题描述】:
我正在做这样的事情
for {
x <- MonadX
y <- MonadY
} yield {
(x, y)
}
MonadX 和 MonadY 的类型为 M[X] 和 M[Y],我提供了一个实例 implicit m: Monad[M]
这是我的进口
import scalaz.Monad
import scalaz.std.list._
import scalaz.syntax.traverse._
import scalaz.Scalaz.ToBindOps
import scalaz.Scalaz.ToApplyOps
我的错误是:
[error] both value optionInstance in trait OptionInstances of type => scalaz.Traverse[Option] with scalaz.MonadPlus[Option] with scalaz.Each[Option] with scalaz.Index[Option] with scalaz.Length[Option] with scalaz.Cozip[Option] with scalaz.Zip[Option] with scalaz.Unzip[Option] with scalaz.Align[Option] with scalaz.IsEmpty[Option] with scalaz.Cobind[Option] with scalaz.Optional[Option]{def point[A](a: => A): Some[A]; def cojoin[A](a: Option[A]): Option[Some[A]]}
[error] and value listInstance in trait ListInstances of type => scalaz.Traverse[List] with scalaz.MonadPlus[List] with scalaz.Each[List] with scalaz.Index[List] with scalaz.Length[List] with scalaz.Zip[List] with scalaz.Unzip[List] with scalaz.Align[List] with scalaz.IsEmpty[List] with scalaz.Cobind[List]{def empty[A]: scala.collection.immutable.Nil.type}
[error] match expected type scalaz.Monad[M]
关键是我不想导入 scalaz._ 和 Scalaz._ 因为我不想减慢我的 IDE 速度
【问题讨论】: