pub fn squared_distance<T>(
    left: &[T],
    right: &[T]
) -> Result<SquaredDistance, ()>where
    T: ToAnimatedZero + ComputeSquaredDistance,