reminds me a lot of the original Nova prototype. It used to use a tuple space, but the most efficient backing was a prefix tree. So a rule like<code>a b:<br> a b c.<br></code>
would append c to the a b branch. The current Nova implementation ditched the tuple space for named stacks as matching on something like<code>a $x, b $x:<br> a b $x.<br></code>
was an implicit double loop. And made it trivial to explode complexity with no means of taming it.