Why is this abstraction useful?
It is not much harder to implement than the avail/next abstraction
Built-in pointers meet the requirements as long as you use them to point to contiguous memory
- algorithms work smoothly on built-in arrays
- code is about as efficient as it can be