I'm rather welcoming of the immutable change (hehe) of strings, but I haven't
considered these details -- perhaps because I only use strings as immutable
(currently with no such guarantee!), and use bigarray for a block of mutable
bytes... which is your idea #3.

It seems the "bytes" type would be most useful in cases where mutable and
immutable strings are used in a mixed manner... but given these practical
issues you raise, it could be less pleasant than it first appears. Your
"stringlike" solution seems reasonable, but I don't have a good use-case in
mind for mixed mutable/immutable to help me imagine the result. What are some
scenarios where this mix of types is desired? I think even Rust doesn't
support mutable strings -- which seems bold for its target audience, yet
they're fine with it?

When I consider possible scenarios of utf8 encoded strings, and mutating that
in-place... ugh. Even "back in the day", doing string operations in C on
ASCII, I'd favor building a new string rather than flirting with saving ops by
overwriting values in the current string. Oh! Upper/lower-case! Maybe that's
the one good use-case. ;)



On Fri, Jul 4, 2014 at 1:18 PM, Gerd Stolpmann <info@gerd-stolpmann.de> wrote:
Hi list,

I've just posted a blog article where I criticize the new concept of
immutable strings that will be available in OCaml 4.02 (as option):

http://blog.camlcity.org/blog/bytes1.html

In short my point is that it the new concept is not far reaching enough,
and will even have negative impact on the code quality when it is not
improved. I also present three ideas how to improve it.

Gerd
--
------------------------------------------------------------
Gerd Stolpmann, Darmstadt, Germany    gerd@gerd-stolpmann.de
My OCaml site:          http://www.camlcity.org
Contact details:        http://www.camlcity.org/contact.html
Company homepage:       http://www.gerd-stolpmann.de
------------------------------------------------------------



--
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs