Hello, 

I find your notion of "model" and presentation a bit confusing since it 
conflates what I would call the internal representation and the API. 

The internal representation defines how the Unicode text is stored and should 
not really matter to the end user of the string data structure. The API defines 
how the Unicode text is accessed, expressed by what is the result of an 
indexing operation on the string. The latter is really what matters for the 
end-user and what I would call the "model".

I think the presentation would benefit from making a clear distinction between 
the internal representation and the API; you could then easily summarize them 
in a table which would make a nice summary of the design space.

I also think you are missing one API which is the one with ECG I would favour: 
indexing returns Unicode scalar values, internally be it whatever you wish 
UTF-{8,16,32} or a custom encoding. Maybe that's what you intended by the "Code 
Point Model: Internal 8/16/32" but that's not what it says, the distinction 
between code point and scalar value is an important one and I think it would be 
good to insist on it to clarify the minds in such documents.

Best, 

Daniel



Reply via email to