// runs ta and tb in parallel, takes the result of the first
// one to complete and cancels the other effect
val t: IO[TypedError, Int] = IO.race(taskA, taskB).map {
case Left(value) => value * 10 // ta has won
case Right(value) => value * 20 // tb has won
}
Нужен телевизор за 300кк, коджимба гений, на кончиках пальцев.