ATOMICITY OF ELEMENTS IN BLOCK!s AND GROUP!s
A new non-negotiable for Ren-C is that for any BLOCK! (or blocklike thing) the following property holds:
block2: copy []
for-each item block1 [append block2 item]
assert [block1 = block2]
Prior to isotopes, it wasn't conceivable that such rules could hold. But after years scaling a mountain of design... I concluded this could be achieved, if all the tricky behaviors came from values "at quoting level -1" that could not be put into blocks.
-
There are no isotopic actions to implicitly execute; you'd get an error trying to put them in the block.
-
There are no blocks/groups/paths that will splice into the target, because splicing requires an explicit conversion to an isotope.
-
There are no "unsets" to trip on that you can find in a block, because the state conveying "unsetness" (trash) is an isotope.