Vectors and arrays are excellent for dense data, that is, when you're not doing inserts in between elements, and the range of indices is reasonable. But if you need, for example, inserts and indexing in arbitrary indices, a tabular structure won't perform well. In such cases, you need some sort of a map or similar structure.
Haskell doesn't have any sparse structures built-in, nor does the Haskell report define any. This has some nice consequences:
Keeps the core language small
Gives Haskellers complete freedom over the implementation
Allows writing code that doesn't care much about the specific underlying data structure
There are many excellent libraries, implementing a wide range of sparse data structures, in Hackage, not to mention type classes capturing general properties of those structures. Unfortunately, the ecosystem is a bit too scattered, so it is sometimes hard to determine which library would give the best performance, cleanest code, and most flexibility, or whether...