aggregate

inline fun <Ok : Any, Error : Any> Iterable<Outcome<Ok, Error>>.aggregate(reduce: (List<Error>) -> Error): Outcome<List<Ok>, Error>