All in all, looks really good, especially the fact that it defaults to a grapheme view rather than a codepoint view. I also like the escape valve for drilling down to bytes if you really need it, but it reminds me that we'll need something similar for drilling down to codepoints for those charsets that define graphemes with multiple codepoints. If Parrot ops "never go past the charset", and if there's only one charset view possible for a string, then it seems to imply that either we have to force a conversion (yuck) to change the view from a grapheme-oriented charset to a codepoint-oriented charset, or we need some way of having the two different charset interfaces to the same string simultaneously, or we need some other way to drill through to codepoints much like the byte view provides.
Larry