> > The difference is that ^R is interpreted as a symbol, whereas "foo > > cannot be interpreted as anything at all by 'read'. > I do not understand what you mean ^R is interpreted as a symbol: (symbol? (call-with-input-string "\x12" read)). "foo" is interpreted as a string: (string? (call-with-input-string "\"foo\"" read)) "foo without a terminating string cannot be interpreted at all: (call-with-input-string "\"foo" read) > and I think you are overengineering. It's not any more overengineering than catching not-an-integer IMO. AFAICT, this does not find the definition of overengineering I found on Wikipedia. Also, I do not understand the resistance -- I have a simple proposal for generalising your patch to more failure modes, with a demonstration and test case (see the file "a") on when it is necessary and a proposed implementation. zimoun schreef op vr 27-05-2022 om 15:23 [+0200]: If you are able to produce a corrupted file which breaks "guix time-machine", then we can examine.  Else let move on. :-) I previously produced the corrupted file, see the file "a". I am not willing to deliberately corrupt my file system for this, especially when I can just give a synthetic example of corrupted file (see the file "a") and especially since making a synthetic example is much simpler and faster. Greetings, Maxime.