raulraja
10/30/2017, 1:50 PMobject test {
val ops: List<() -> Either<String, Int>> = listOf(
{ 1.right() },
{ 1.right() },
{ 1.right() }
//{ "BOOM".left() }
)
val result: Either<String, Int> = ops.map{ it() }.reduce { a: Either<String, Int>, b: Either<String, Int> ->
Either.monad<String>().binding {
val x = a.bind()
val y = b.bind()
yields(x + y)
}.ev()
}
}