Oh I wasn’t trying to appeal to authority or anything. What I meant was that I know you guys obviously understand the engine very well so the fact that this change was a lot of work indicates to me that you were fighting an “uphill battle”. I’m not saying this is an argument that stands on its own, though; it was just added color in context.
I had actually made a similar point before you guys fixed the :for composition issue, but at the time I had not yet figured out how to do it “the right way”. It’s hard because the React engine does not have these problems but the React engine also heavily abuses DOM refs in the tree in a way that LV cannot because it’s on the wrong side of a network.
I think I now see the way to do this, but I’m not saying it’s easy! Designing an engine that handles composition better will likely be more work, all I meant is that once that engine exists getting rid of global ids should be trivial whereas with LV’s engine it was clearly not easy to retrofit in the case of keyed :for.
I know you put so much effort into redesigning keyed :for because you cared about getting it right. I cared about it too, which is why I had raised the concern with you at the time. What I appreciate most about the Elixir community is that there is a culture here of caring about such things, and that is the spirit in which I’m posting ![]()
I will give some more consideration to the engine design, as I am pretty sure there is a better design lurking. This doesn’t mean LV’s existing engine is somehow “bad” btw, I think it’s just a natural progression. LV is more powerful now than it was perhaps intended to be initially.


















