私は scala.concurrent.Future で Scalaz eitherT を使用しようとしています。for-comprehension で使用しようとすると、次のようになります。
import scalaz._
import Scalaz._
val et1:EitherT[Future, String, Int] = EitherT(Future.successful(1.right))
val et2:EitherT[Future, String, String] = EitherT(Future.successful("done".right))
val r:EitherT[Future, String, String] = for {
a <- et1
b <- et2
} yield (s"$a $b")
Functor と Monad インスタンスが見つからないという次のエラーが表示されます。
could not find implicit value for parameter F: scalaz.Functor[scala.concurrent.Future]
b <- et2
^
could not find implicit value for parameter F: scalaz.Monad[scala.concurrent.Future]
a <- et1
scalaz は Future の Functor と Monad のインスタンスを定義しますか? これらのインスタンスを提供する他のライブラリがない場合、またはそれらを作成する必要がありますか?