Nim's 'async' macro rewrites the code so that it becomes iterable/etc where needed.
[https://nim-lang.org/docs/asyncdispatch.html#17](https://nim-lang.org/docs/asyncdispatch.html#17) I think what Dom's doing here is giving a slightly desugared version of what the 'async' macro would normally do for your code.
