The first concept of representing splices out of isotopes was actually to make them as antiform BLOCK!.
You'd get an antiform block regardless of the input to SPREAD:
>> spread [d e]
== ~[d e]~ ; anti
>> spread '(d e)
== ~[d e]~ ; anti
>> spread @[d e]
== ~[d e]~ ; anti
From the perspective of things like APPEND, it doesn't matter:
>> append [a b c] spread [d e]
== [a b c d e]
>> append [a b c] spread '(d e)
== [a b c d e]
>> append [a b c] spread @[d e]
== [a b c d e]
Canonization of Splices Is Important
By canonizing splices to just one type, we recover the other list antiforms for other meanings that have nothing to do with splicing. That subtlety would be lost if people had to think of every list type as being a splice.
It also helps you realize information is being thrown away. Not only is the subclass of list forgotten, but any binding is removed too (!)
But which canon list form should it take?
GROUP! Seems The Best Choice
-
It makes the canonization more obvious. Since the input to SPREAD will typically be a BLOCK!, people will learn the type is not preserved quickly:
>> spread [a b c] == ~(a b c)~ ; anti
-
Parentheses look softer and more permeable. They already are "weaker" in that they do not "block" evaluation in the way a BLOCK! does. So their softness makes it feel more reasonable to say that the edges aren't there.
(This semiotic permeability exists in other places where brackets and parentheses are juxtaposed... for instance in interval notation, where [10, 20) means "the numbers from 10 to 20 without including 20")