<i>There is nothing difficult with that as long as the GC knows everything about strings and their pointers so it can detect that a particular string is reachable only through single another string.</i><p>Right, but that is a specific case where a built-in data type is optimized. It&#x27;s not difficult, because the GC knows the semantics of a specific data type. But this does not work in the general case of slicing of library&#x2F;used-defined data types.