Async/Await -> Effect

State, in SwiftUI at least, is @MainActor-isolated (actually @MainActor(unsafe) for compatibility). So, I suggest marking state-handling code @MainActor-isolated. As to how you could incorporate async/await, I don’t think I have something better to offer compared to your first example.