Callable, Iterator and Range get SFINAE-able associated types, implement range traits in terms of Range's associated types