traverse

fun <E, A, B> Sequence<A>.traverse(f: (A) -> Either<E, B>): Either<E, List<B>>
fun <A, B> Sequence<A>.traverse(f: (A) -> Option<B>): Option<List<B>>
fun <E, A, B> Sequence<A>.traverse(semigroup: Semigroup<E>, f: (A) -> Validated<E, B>): Validated<E, List<B>>