Astract iterators.
get the next element of the iterator
get the position in the iterator either None or Some x in 0;1
convert the progress return value to a string: None->"", Some->" 33%"
iterate over the iterator: call f on each element
fold over the iterator: call f on each element and return the accumulator
fold is the same as reduce
find an element that satisfies the predicate
evaluate a predicate over the entire iterator
create an iterator from an iterating function
an iterator that halts immediately
create an iterator that may iterate over one value
create an iterator that will go over list elements
iterate a function and collect results to a list
create an iterator that will go over array elements
iterate a function and collect results to a array
create a progress function for an input channel
create an iterator that will read from file using f