Todo add support for async generator functions (AsyncIterators and AsyncIterables) Do some thinkin' about what needs to be done to support hooks, and some recoil-like patterns