Learn how to accept and return a variety of useful string types that are transparent to users of your functions. Additionally, save some memory allocations by using clone-on-write pointers.