Iterator key feature
Laziness introduces many "action-at-a-distance" effects.
Many false starts until Summer 2010:
- Iterate and throw away information
- ✗ data loss at a distance
- Keep everything
- ✗ bad for pipelines and memory usage
Key insight: "mutable lists, immutable iterators"
→ Iterators act immutable ←