Write D input range generators in a straightforward coroutine style