- Adaptor is fused: guaranteed to return None indefinitely after end of iterator.
- Adaptor is well behaved: Does not call
.next() on non-fused iterator after it has returned None once.
All of our adaptors must be well behaved, some guarantee being fused.