mtoohey.com/iter (go): Package iter provides generic, lazy iterators, functions for producing them from primitive types, as well as functions and methods for transforming and consuming them.  When reading the documentation of the functions contained in this package, you should assume that any function which accepts an iterator, but does not return one, consumes it unless otherwise stated, meaning that the values contained within cannot be used again.  Methods with names suffixed by Endo indicate that the method transforms iterators of generic type T to some type in terms of T, such as T or Iter[T]. Transformation between types is possible, but only through the corresponding function whose name is identical to the method, without the Endo prefix. Functions are required for these operations because Go does not support the definition of type parameters on methods. The nomenclature comes from the term endomorphism, though it is a bit of a misuse of the term in that some *Endo methods take extra parameters or return types derived from T other than Iter[T].
Keywords: generic|generics|go|golang|iterator|lazy