
On Sat, Mar 24, 2012 at 2:31 PM, Brandon Allbery
I was under the impression they have been very carefully designed to do the right thing with characters represented by multiple codepoints, which is something the String version *cannot* do. It would help if Bryan were involved with this discussion, though. (I'm cc:ing him on this.) Since the whole point of Data.Text is to handle stuff like this properly I would be surprised if your assertion that
upcase :: String -> String upcase = map toUpper
This is no more incorrect than upcase = Data.Text.map toUpper
is correct.
This is simply not possible given the Unicode specification. There's no code point that corresponds to the two characters used to represent an upcased version of the essets. I think the list based API predates Bryan. -- Johan