So this little guy doesn't have a name:
Yes it's a "tilde", but if there's a TILDE definition I think it should be talking about the character:
>> char? tilde
== ~okay~ ; anti
>> quasiform? tilde
== ~null~ ; anti
We're talking about something that evaluates to the antiform of blank (a VOID):
>> eval [~]
== \~\ ; antiform (void!)
QUASI-BLANK?
It's an accurate name...
>> quasi first [,]
== ~
But if you're going to be testing for them easily in a block, you want something shorter.
Carl went on a bit of a bizarre track by deciding that #[none] was unweildy in blocks, and he liked zeros better... single characters... so he started using zeros instead of nones, and made ZERO? accept everything.
I started using a lot more zeros in my data structures, especially those that had to be loaded from a file or database, because I knew that zero loaded more efficiently than NONE (no hash was required).
For example, where I would once create REBOL-stored DB records like this:
["name" none none]I would use:
["name" 0 0]Because using 0 does not require a hash-and-compare operation (as does the word NONE) nor does it require binding (as does the value NONE)... nor is it the long-form literal #[none], that seems just a bit too cumbersome to my coding style.
You're getting a lot of single-character choices in Ren-C, and which one you use kind of depends on what you want.
QUASI-BLANK is as ornery as it can be while being legal to appear in a block.
Does It Need A Name?
Something that makes it desirable for QUASI-BLANK to have a name is that because it's evaluative, you can't just compare to it directly without quoting it.
if '~ = second block [...]
Something SPACE doesn't have that problem.
if _ = second block [...]
But still, Rebol tries to reduce the symboly-ness, and that looks nicer if there's a test you're going to be performing a lot:
if space? second block [...]
So I think that QUASI-BLANK needs a nice short name, to help avoid people writing sequences like '~ = often in their code.

