Есть ли какой-то тип асинхронного функтора у кошек? Или хороший способ подражать такому поведению?
Например, что-то вроде
trait AsyncFunctor[F[_]] { def mapAsync[A, B](fa: F[A])(f: A => Future[B]): F[B] }
эффект кошки имеет эту монаду, которая может описывать асинхронные или синхронные вычисления, которые дают ровно один результат