Replaced enforce with assert
Implement an InputRange API