sqrEuclidianDistance a b = loop 0 0 (V.length a `min` V.length b)
    where
        loop !acc !i !n
            | i >= n = acc
            | otherwise = let x = (a V.! i) - (b V.! i) in loop (acc + x*x) (i+1) n
sqrEuclidianDistance a b = loop 0 0 (V.length a `min` V.length b)
    where
        loop !acc !i !n
            | i >= n = acc
            | otherwise = let x = (a V.! i) - (b V.! i) in loop (acc + x*x) (i+1) n
sqrEuclidianDistance a b = loop 0 0 (V.length a `min` V.length b)
    where
        loop !acc !i !n
            | i >= n = acc
            | otherwise = let x = (a V.! i) - (b V.! i) in loop (acc + x*x) (i+1) n