Fix Enumerable to take a function that generates enumerators rather than returning the same instance of an enumerator every time, as this would create weird behavior if nested enumerations were required.