Don't put too much faith in the details; this is just off the top of my head and I'm probably forgetting some important information. All I really want you to take from this is the idea of a nested list structure, rather than a linear text. This is called the Abstract Syntax Tree of a program.
P.S. This nested structure is already in the script itself; all you have to do is make its pieces manipulable by the user. See https://people.eecs.berkeley.edu/~bh/v2ch5/prgdat.html for examples of what I want to be able to do.
But I'll guess that what you're asking is whether the value of an empty ring should be an empty ring. We have arguments about this. Mostly I think it should be the identity function, so MAP with an empty first input would report a copy of its second input.
Its a simple comparison. It doesnt use any Javascript blocks (which i think can use the empty ring property) so it just compares to the string version of rings. It's not used anywhere, was using it for the DO NOT USE version of the block xml generator to test if the user had placed any sort of block as input