I might be inclined to pass the stream into #cypressEscapeCharacter, where you could run the loop of self and use #nextPut:, rather than creating a String for every character ...