Does Arrow have a way to repeatedly run a predicate to monitor something, as a way to bridge into the async stuff, which expects suspending functions? I am imagining that the predicate would return true when the async computation has finished (be it success or failure), at which point arrow should call the correct callback.