copy_string(aReadable.BeginReading(), aReadable.EndReading(), BeginWriting()+=atPosition);
copy_string(aReadable.BeginReading(fromBegin), aReadable.EndReading(fromEnd), BeginWriting(toBegin).advance(PRInt32(atPosition)));
basic_nsAWritableString<CharT>::do_InsertFromReadable( const basic_nsAReadableString<CharT>& aReadable, PRUint32 atPosition )  {    PRUint32 oldLength = this->Length();    SetLength(oldLength + aReadable.Length());    if ( atPosition < oldLength )      copy_string_backward(this->BeginReading()+=atPosition, this->BeginReading()+=oldLength, EndWriting());    else      atPosition = oldLength;    copy_string(aReadable.BeginReading(), aReadable.EndReading(), BeginWriting()+=atPosition);  }