У кошек он называется >>
.
scala> import cats.implicits._
import cats.implicits._
scala> Option("ignore this") >> Some("result")
res14: Option[String] = Some(result)
В документации явно сказано
Псевдоним для fa.flatMap (_ => fb).
В отличие от *>, fb определяется как параметр по имени, что позволяет использовать этот метод в тех случаях, когда вычисление fb небезопасно, если не приостановлено в flatMap.
Также есть productR
или *>
.
scala> Option("ignore this").productR(Some("result"))
res15: Option[String] = Some(result)
scala> Option("ignore this") *> Some("result")
res16: Option[String] = Some(result)
Как и do c, его аргумент не является псевдонимом. Так что это более или менее эквивалентно
val x0 = Some("result")
Some("ignore this").flatMap(_ => x0)
Там есть productREval
, если вы хотите альтернативную стратегию оценки.