pakoito
fun <Type> IO<Type>.useCase(ok: (Type) -> Unit, error: (Throwable) -> Unit): IO<Type> = defer(IO) { this@useCase } .continueOn(Main) .effectM { t -> delay { ok(t) } } .handleError(error)