I would (perhaps naively) expect that this would be the fundamental method. Why would `write_str` be it instead?