The trick in understanding what they are is to understand that these are not vectors if I try to get closer to your semantics. Once it is viewed purely as a kind of reference type, a view in a backing array, it has only one meaning.
It's easier for a traditional functional language to implement lists and vectors perhaps because they operate on the premise of immutability first. Beware of the memory footprint though.
I admit that it might be easier to think in term of vectors. That's kind of what was done designing the wrapper.
Still, as I understand, slices are just lower-level. Immutability is a higher, language level concept.