arrow-optics / arrow.optics / Fold / foldMap
abstract fun <R> foldMap(M: Monoid<R>, s: S, f: (A) -> R): R
Map each target to a type R and use a Monoid to fold the results
Do you like Arrow?