The function ErlangInteger::cached is used inside string serialization mechanism. But it's internal hashing mechanism is too weak. For instance hash for ErlangInteger::cached(1273) and ErlangInteger::cached(117) in both cases is equal to 923638.
As a result the resulting string which has both symbols with code 1273 and 117 when in LIST mode becomes corrupted.
Please fix it or rather change string serialization to use non-cached constructor of ErlangInteger