> No, I was thinking more for internal implementation There is no need for a different iterator. Internally, everything are "sets". You could create a set using new DateTime::Set( day => 3, every => 'month' ) and then use the same iterator that works with callbacks.
> Anyway, the start and end aren't a span, per se, just two dates that can't be exceeded. They are a span, internally. But it is ok to pass them as DateTime parameters. > if you had a set that was infinite in both directions and you wanted an iterator, you'd have to say what direction it iterates in. Ok. But we could use another word for 'backwards' iteration - I think 'next' has some 'forward' meaning. - Flavio S. Glock