James Baker
06/27/2023, 8:25 AMEither
and EitherNel
in the same either { … }
block?
fun foo(): Either<E, A>
fun A.bar(): EitherNel<E, B>
fun baz(): EitherNel<E, B> = either {
val a = foo().toEitherNel().bind()
a.bar().bind()
}
Thanks in advance 😄simon.vergauwen
06/27/2023, 9:18 AMcontext(Raise<NonEmptyList<E>>)
fun Either<E, A>.bind(): A = when(this) {
is Right -> value
is Left -> raise(nonEmptyListOf(value))
}
Youssef Shoaib [MOD]
06/27/2023, 11:29 AMfun baz(): EitherNel<E, B> = either {
withError({ e: E -> e.nel() }) {
val a = foo().bind()
a.bar().bind()
}
}
James Baker
07/20/2023, 2:21 PMwithError
in 1.2.0 Cheers!Youssef Shoaib [MOD]
07/20/2023, 2:44 PMwithError({ e: E -> e.nel() }) {}
wrapping for you. Call it withNel
or something