I've mentioned that there are not going to be quasiform or antiform sequence types.
-
We want tildes in paths
~/home/whatever.txt
-
Paths in particular...but they could be useful in tuples (
~.foo
) or chains ([a]:~
) -
Quasiforms might be nice for some purposes too (
~null~/a/b/c), (foo:~[a]~
)
-
-
The known very important usage of tilde in paths, plus all the as-yet-unknown and untapped other uses, far outweigh any advantage I can think of for antiform/quasiform sequences.
So that's settled. But there's a bit of an edge case with the WORD!s like /
or . or :
And there, I'm going to have to say that ~/~
is a quasiword.
-
I want all words to have quasiforms (though not antiforms... only system-blessed "keywords" will be allowed to become antiforms). And so I don't want to exempt any words from that.
-
I don't think excluding
~/~
as a path form has any tremendous consequences -
Allowing it to be a quasiword fits in with
~///~
and other such words being quasiwords, and those aren't valid paths.
So we open up a wider field of parts, keep all words having quasiforms, and lose one weird path representation.
Though it's not "lost"--if you're writing dialect code that has some logic for what a PATH! of two tilde-trash would mean, you can specially recognize the quasiword. You'll only run into representational trouble if in the same dialect you need a meaning for every possible quasiword that deviates from what the path interpretation would be.
(I'd say I'd bet money that's never going to happen, except I've seen exactly weird things like that happen often enough to know better. So instead I'll say "it might happen someday, but I don't care.")
Anyway, trying to shore this up a bit, some sample errors:
>> to path! [~ a]
== ~/a
>> to path! [~ ~]
** Script Error: Sequence would conflate with WORD! form: ~/~
>> to path! [a _]
== a/
>> to path! [_ _]
** Script Error: Sequence would conflate with WORD! form: /
>> to path! [_ a _]
== /a/
>> to path! [a _ b]
** Script Error: BLANK! only legal at head and tail of sequence