A monadic interface for async