simon.vergauwen
01/07/2019, 9:31 PMIO.run
if you use IO.raiseError
instead. You’re already import binding for io directly with import arrow.effects.extensions.io.monad.binding
🙂bjonnh
01/07/2019, 9:33 PMsimon.vergauwen
01/07/2019, 9:34 PMwork
as
fun work(s: String): IO<Obj> =
binding {
val output = apiCall(s)
val obj = convert(output.bind())
obj ?: IO.raiseError<Obj>(DecodingError)
}
simon.vergauwen
01/07/2019, 9:35 PMbinding
directly. And you’re only using raiseError
which is directly available on IO.Companion
2.bjonnh
01/07/2019, 9:36 PM