Conversation

Replying to
Iterator trait defines a whole bunch of default methods in terms of the required next() method. Iterators including adaptors like the Skip adaptor returned by skip can override the default methods with smarter implementations and they often do it. Skip itself overrides several.
1
Replying to and
The initial iterator library that I implemented didn't override much with smarter implementations but they now have a bunch of it. Your best bet is just looking at each iterator involved: github.com/rust-lang/rust You can see next calls nth on 1st call for the iterator it wraps.
Replying to and
Skip itself is an example of overriding default methods with smarter implementations. You would need to look at the nth implementation of the iterator wrapped into Skip by skip(n) and then look back through the rest of the chain. Compiler can of course figure it out itself too.
2