>> > And, btw, why not allow raw bytes here as well? is there some problem? >> >> Because of ambiguity, both these return the same value: >> >> (read (concat "?" (string 128))) => 128 >> (read (concat "?" (string 4194176))) => 128 > > And why is that a problem? I don't know, Andreas remarked that it creates ambiguous output, and I fixed the reported problem. > Alternatively, we could print raw bytes in some special way. But not > treating them as characters sounds some subtlety that will be hard to > explain. The existing 'prin1-char' used as a reference implementation doesn't print integers like 4194176 as characters, so the patch does the same. Anyway, here is a complete patch with tests and documentation: