Scalazが反復する:「大きい」モナドの「IterateeT」に一致するように「列挙」Tを「持ち上げる」
EnumeratorTと対応するものがあれば、IterateeT一緒に実行できます: val en: EnumeratorT[String, Task] = EnumeratorT.enumList(List("a", "b", "c")) val it: IterateeT[String, Task, Int] = IterateeT.length (it &= en).run : Task[Int] 列挙モナドがiterateeモナドよりも「大きい」場合、私は一致するようにiterateeを使用するupか、より一般的にHoistは「持ち上げ」ます。 val en: EnumeratorT[String, Task] = ... val it: IterateeT[String, Id, Int] = ... val liftedIt = IterateeT.IterateeTMonadTrans[String].hoist( implicitly[Task |>=| Id]).apply(it) (liftedIt &= en).run: Task[Int] しかし、iterateeモナドが列挙子モナドよりも「大きい」場合、どうすればよいでしょうか。 val en: EnumeratorT[String, …