Looks like `init` is always a closure that returns fixed value. Since you cache the modCount in the ctor, you can just pass the value rather than a closure. (If you grabbed the modCount in _moveNext you could support creating the iterator and modifying the collection as long as you haven't started iterating yet, but I don't think that's wise).