What does it mean if a generic structure is type-erased? This documentation states that the generic structure AnyIterator is a type-erased iterator of Element.
It means that at runtime you will not be able to see what object comes out of
the collection, as that information is removed from the lower-level code that is generated by the compiler.

In your specific instance, it would mean that at runtime an object of type AnyIterator&lt;Element&gt; will not be able to tell you what is the exact type of Element, unless ofcourse, you (implicitly/explicitly) cast it.