pub fn circular_tuple_windows<I, T>(iter: I) -> CircularTupleWindows<I, T> where
    I: Iterator<Item = T::Item> + Clone + ExactSizeIterator,
    T: TupleCollect + Clone,
    T::Item: Clone,