fn range<T>(start: T, stop: T) -> Result<impl Iterator<Item = T>>where T: CheckedAdd<Output = T> + PartialOrd + Copy + One + IsNegative,