If the return value of this function is passed to some `std::ostream` object, then I'd return a stream here, instead of a string. What do you think? Actually this looks like an `operator<<()`, isn't it?