Range is interesting
Iterable
|
+------------------------------+
| |
List Iterator
| |
+------+ +----------------------------+
| | | | | |
Array LoL ListIter MapIter GatherIter Range
Since Range has a .reify, it can act as an Iterator.
The Range.iterator method (needed for all Iterable) just returns self.
Might relocate Range to Iterable at some point