A good one can detect that only a range of allocation is alive and release unused part of someLargeString.
I do agree that ropes are nice, though they may not be acceptable if you want O(1) indexing or slicing.