A protocol used for iterating range elements.
t :: term
Count how many items are in the range.
Returns the function that calculates the next item.