Are the wordings "pure" vs "impure" suitable here, or should it have been "stateless" vs "stateful"?
"Stateless" does not seem as strong as "pure", and purity is what I'm after. What about an iterator that maintains no state but prints to the screen? You could describe it as a "stateless", but not as "pure".