Strings from a physical point of view can be:
- streams generating chunks of strings
- builders generating a final string by code
- array of chars with append semantic
- ropes (modifiable in various places, btree like)
- read-only compressed text
Dok should suggest the best way to manage strings, and create an interoperable library, transforming functions operating on them. In particular the API for accessing strings should be ad-hoc for every format and based on native operations of every format.
See also tech/fusion-of-string-operations.