The widespread use of copy-on-write value types in Swift has generally been a success. It does, however, come with some drawbacks: The ability to copy a value at any time and thus “escape” it forces the underlying buffers to generally be heap-allocated.