Super interesting! Been following the progress of Tylr and this couldn't be more timely as I've been working on very much the same challenge of assembling term structures from linear parts and disassembling them back for editing. Was there someone from the Tylr team in here?
Ashamed to say that I've done almost no hands on or under the hood research of the existing structure editors before starting to write my own, but I would imagine that, unless the child kinds of all terms are known (or the user selects the kind themselves), basically all of the editors have to do assembling from linear parts to some extent and the innovation in Tylr is being able to disassemble as well?
As for the demo, shouldn't it be possible for a structure editor to just allow pushing the argument(s) to their next possible position up/down the term tree without disassembling. Just need to know the linear order of the leaves? I feel like my editor should be able to and I wonder if I'm not seeing something.. Of course there's the question of how to expose it to the user..
Another thing that I've been thinking regards this is whether disassembling the whole expression/body is prefereable in all cases or would you still want keep parts of it as terms and therefore be able to render term specific UI in between the linear parts. Like, what if there's a multi dimensional array in your expression that is always rendered with a specific UI and can't reasonably be disassembled to linear parts..
Lastly, I wonder how much of the cases where it feels that disassembling is beneficial are due to the pro-code like syntax and because the editing patterns that people are used to. Btw, did the users in Tylr's study have programming experience? What if the braces wouldn't exist (or were just decorators) and user would just select the two arguments and press/click right twice to move them to be the last arguments of the first function?