I've wondered this before, but I will wonder it again:
Should Antiforms Render in the Monochrome Text Console in a Way That Makes Them More Obviously Distinct From Quasiforms, Besides Just The Comment?
Today:
>> spread [a b]
== ~(a b)~ ; anti
>> spread [a b]
== ~(a b)~ ; antiform (splice!) <-- more verbose console setting
In the absence of color or other cues, should there could be "even worse" notations to help emphasize "that's not representable".
Backslashes can't load, so...
>> ~null~
== \~null~\ ; antiform (keyword!)
>> spread [a b]
== \~(a b)~\ ; antiform (splice!)
It Needs The Tildes, Still...
It needs to keep the tildes, because if it didn't, then ~
antiforms would vanish:
>> ~
== \~\ ; antiform (trash!) "tripwire" <-- just `\\` would be bad
(At an implementation level of the QUOTE_BYTE
, it is the case that if you had to ask if antiforms were either quasi or not... they are quasi. e.g. they don't have the NONQUASI_BIT set.)
Potential For Better Guidance In Errors
I really think that in the earliest introductions of antiforms, it helps if they're not too easily conflated with quasiforms
If they type ~null~
thinking it's an antiform, and then see ~null~ ; antiform
They might think antiform is just a label, and they got what they typed "as is" vs a totally distinct evaluation product.
With the uglier notation, if someone happened to think "I'm making an antiform, like I saw on the forum..."
>> \~(a b)~\
** Error: Antiforms have no true representation, and can't be LOAD-ed
** For more information, see: https://...
Antiforms are (apparently) a tough concept for some people to grasp, and I think little things like this can help make it easier.