Slicing an input iterable just doesn't work. Allow consumers of range_adaptor to customize the cursor/sentinel types. Fix cursor comparison for InputRanges