`iterFunc({|| ret; })` does not return from the outer function. Maybe we'll just have accept this, since in the absence of non-local control flow, there's no nice way to implement such returns.