Introduced AbstractAsyncGenerator that can be used by all async generators