pub fn bounds_from_points<P, T>(
    points: impl Iterator<Item = P>
) -> Option<([T; 2], [T; 2])> where
    P: Into<[T; 2]>,
    T: PartialOrd + Copy