James Baker
Either
EitherNel
either { … }
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() }
simon.vergauwen
context(Raise<NonEmptyList<E>>) fun Either<E, A>.bind(): A = when(this) { is Right -> value is Left -> raise(nonEmptyListOf(value)) }
Youssef Shoaib [MOD]
fun baz(): EitherNel<E, B> = either { withError({ e: E -> e.nel() }) { val a = foo().bind() a.bar().bind() } }
withError
withError({ e: E -> e.nel() }) {}
withNel
A modern programming language that makes developers happier.