If I use a BufferBackend<SymbolU16>, the same value can sometimes return different symbols. Neither BufferBackend<SymbolU32> or StringBackend<SymbolU16> have this issue. It's only sometimes. With 12,286 strings, I ended up with between 12,800 and 13,200 symbols, whereas the others always ended up with 12,286 symbols.