simon.vergauwen
03/04/2023, 8:45 AMValidated
. There is a series of PRs currently open, and I am looking for feedback. The mapOrAccumulate PR allows binding both Either<E, A>
and EitherNel<E, A>
in a single orAccumulate
DSL. The following introduces the same to all other orAccumulate
signatures and also removes a lot of code duplication, but also making a small breaking change in the alphas. Specifically here for Either.zipOrAccumulate, the code is now derived from the optimised Raise.zipOrAccumulate. But it works over lambdas instead of values, I also proposed parZipOrAccumulate which matches parMapOrAccumulate
but for independent operations. The proposed Either.zipOrAccumulate
now matches the also proposed parZipOrAccumulate
.
Iterable.mapOrAccumulate
and NonEmptyList.mapOrAccumulate
are now also derived from the now more optimised Raise.mapOrAccumulate
.
The biggest downside of it all is that without context receivers you need to more often specify type arguments 😞 but their is a very graceful migration from the current encoding to context receivers. You can find a lot more details in the PRs, but feel free to ask and questions or doubts in the PRs themselves ☺️