Luke
Either
Left
data class State(val either: Either<Error, Something>)
State.either./*focusIfLeft()*/.modify(state) { left: Left<Error> -> Something().right() }
fun <T, R, L> Lens<T, Either<L, R>>.onLeft(): POptional<T, T, L, Either<L, R>> = plus( POptional( getOrModify = { (it as? Either.Left<L>)?.value?.right() ?: it.left() }, set = { _, newValue -> newValue } ) )
Ties
A modern programming language that makes developers happier.