Emil Kantis
Either.leftOrNull()
List<Either<A,B>>
List<A>
val unpackedProblems = problems.mapNotNull { when (it) { is Either.Left -> it.value else -> null } }
Satyam Agarwal
Ivan Lorenz
ValidatedNel<A, B>
val unpackedProblems = problems .map { it.toValidatedNel() } .sequenceValidated() .tapInvalid { //consume your NonEmptyList of A typed errors }
results .map { it.toValidatedNel() } .sequenceValidated() .tap { generateResultEmail(it) } .tapInvalid { generateProblemEmails(it) }
A modern programming language that makes developers happier.