Core concept

import cats.implicits._
List(1, 2, 3).traverse(n => Option(n * 2))  // Some(List(2, 4, 6))
Advertisement

How it works

Requires Applicative for G. Fails fast (first None short-circuits).

Advertisement

Trade-offs + gotchas

Validate + collect list results in one pass.