import arrow.fx.IO fun log(): IO = IO { println("Finalized") } val ioOps: IO = IO .raiseError(RuntimeException("Blarg!")) .guarantee(log()) ioOps.unsafeRunAsync { result -> result.fold( { println("Failure") }, { println("Success") } ) }