On Thu, 2021-11-18 at 12:26 -0300, Alexandre Torres Porres wrote:
I remember that discussion (I can try and find it) and I remember people agreed symbol box should hide "".
I guess I can agree to that. In my idea, we know what's coming out of a symbol box, it's a symbol, so if you have a symbol with a space, then we know that the space is 'escaped' (that is, we're not splitting this into two atoms).
Yeah, it definitely should keep the symbol intact. But that to make sure is an issue of the FUDI encoding. I don't type backslash escapes and I also do not want them to be displayed. The backslashes are not part of the payload, unless I type them explicitly.
But I think print should keep it, in the same way we also need to keep it for message boxes.
Outside the context of a symbol box, it is important to differentiate if we have, for instance, a list where one of the items contains an escaped space.
like, the message:
| list one\ item two <
has two atoms "one item" and "two", and print should be able to tell us that.
Yeah, that's the FUDI encoding of a list containing two symbols.
Now, I don't know about the new list box. What if we want to create a list with an escaped space? It seems like a special and different case/context of a symbol box.
Yeah, obviously list boxes are for lists and symbol boxes for symbols. I think for list boxes to be effective they need to show the FUDI encoded value, which means displaying the escaping character.
By the way, I've been testing it and it seems we can do this by putting the escaped character ourselves. That seems correct. But it would be different than the symbol box and maybe I guess it shouldn't be too problematic that the symbol box also shows escaped characters.
Yes, it is, imho, it is dead-ugly and confuses the distinction between payload and encoding. I'm pretty happy that Python doesn't only print "b'Z\xc3\xbcrich'" when I intend to print "Zürich".
They're not that common and we can document why this happens when it happens.
That would be confusing things even more.
Roman