raulraja
03/04/2018, 1:34 PMinvoke on IO delays the computation suspending it and handles exceptions:
val value = IO.monad().binding {
val delayedResult1 = IO { delayedComputation() }.bind()
val delayedResult2 = IO { delayedComputation() }.bind()
delayedResult1 + delayedResult2
}
That won't ever be executed until you call value.unsafeRunAsync or value.unsafeRunSync. Is that what you were referring to with delay?