> I can't imagine how you would even implement a string as anything other than a rune array.
You can also implement strings using a tree data structure. We do this in an implementation of Ruby that I work on because it can make concatenation faster.
A text editor edits a (potentially very long) string, but apart from, possibly, the likes of Notepad, none of them store that string as a single byte array.
So, look at text editor data structures for other representations. Examples:
Just so people know, there are arrays used for text manipulation in Haskell in the Data.Text library, and bytestrings in the ByteString library. The language as specified does indeed have strings in a linked list of numbers, but if you even remotely care about performance you don't use those, and most libraries don't either nowadays.