-- | Throw a bad slice error.
errorBadSlice :: String -> Int -> Int -> Int -> a
errorBadSlice loc vecLen sliceStart sliceLen
        = error $ loc ++ ": Bad slice "
                ++ "(vecLen = "         ++ show vecLen
                ++ "; sliceStart = "    ++ show sliceStart
                ++ "; sliceLen = "     ++ show sliceLen ++ ")"
errorBadSlice :: String -> Int -> Int -> Int -> a
errorBadSlice loc vecLen sliceStart sliceLen
        = error $ loc ++ ": Bad slice "
                ++ "(vecLen = "         ++ show vecLen
                ++ "; sliceStart = "    ++ show sliceStart
                ++ "; sliceLen = "     ++ show sliceLen ++ ")"
errorBadSlice loc vecLen sliceStart sliceLen
        = error $ loc ++ ": Bad slice "
                ++ "(vecLen = "         ++ show vecLen
                ++ "; sliceStart = "    ++ show sliceStart
                ++ "; sliceLen = "     ++ show sliceLen ++ ")"