What if selected functions in phobos were modified to take an optional parameter that specified COW or in-place? The default for each would be whatever they do now. For example, toupper and tolower? How many times have we seen something like this: str = toupper(str); // or equivalent in another language. Thanks, - Dave