bind
Invoke an EagerEffect inside this Raise context. Any logical failure is raised in this Raise context, and thus short-circuits the computation.
See also
if you want to attempt to recover from any logical failure.
Invoke an Effect inside this Raise context. Any logical failure raised are raised in this Raise context, and thus short-circuits the computation.
See also
if you want to attempt to recover from any logical failure.
Extract the Either.Right value of an Either. Any encountered Either.Left will be raised as a logical failure in this Raise context. You can wrap the bind call in recover if you want to attempt to recover from any logical failure.
fun test() {
val one: Either<Nothing, Int> = 1.right()
val left: Either<String, Int> = Either.Left("failed")
either {
val x = one.bind()
val y = recover({ left.bind() }) { _ : String -> 1 }
x + y
} shouldBe Either.Right(2)
}Content copied to clipboard