Sorry for late response. To sum up the discussion: 1. A common parent interface for the Iterator and Iterable which returns Iterator after calls to map etc. 2. Add a few more methods (slice). filter/slice require fixing bug in vala to provide implementation. 3. State explicitly in documentation when does the function finish (I'd be grateful for any help here) Open points: - Name of the parent interface. (Forallable? ;), Foldable?) - Should it be implemented as virtual or abstract methods. As I stated I prefer C#/Haskell approach then Java and I'm inclined toward the virtual methods. - Is there any other useful operations (tee?) - Should tee/unfold go into parent interface or stay in Iterator I hope I will have updated patches to share by the end of weekend. Regards  In this particular case when the operation is clearly defined by the default implementation even if it is not necessary the most optimal one.
Description: This is a digitally signed message part