T[] is both. You can use it to take a slice of any piece of memory, including freshly GC-allocated arrays. But when you try e.g. to append to it with ~=, that only works if the slice originated as a GC-allocated array.
This isn't *precisely* true. ~= works on a slice of a non-GC array. It just turns it into a GC-array-backed slice.
-Steve
