!7 static L opDiagrams = tlft([=[ CirclesAndLines(circles=[Circle(text="Collapse node backward with name", x=d("0.3414985590778098"), y=d("0.4584139264990329")), Circle(text="\"I think that\"", x=d("0.7536023054755043"), y=d("0.46421663442940037"))], lines=[Arrow(a=t5, b=t26, text="")]) ]=]); static L inputDiagrams = tlft([=[ CirclesAndLines(circles=[Circle(text="I think that", x=d("0.3270893371757925"), y=d("0.35589941972920697")), Circle(text="This is cool", x=d("0.6556195965417867"), y=d("0.35009671179883944"))], lines=[Arrow(a=t5, b=t26, text="")]) ]=]); static SS operationsMap = lithashmap( "Collapse node backward with name", f web_collapseNodeBackwardsWithName, "Collapse backward with name", f web_collapseBackwardsWithName ); p { Web web = web_fromCALStructures(inputDiagrams); Web opWeb = web_fromCALStructures(opDiagrams); for (WebNode node : web_nodes(opWeb)) { S function = operationsMap.get(node.text()); if (function != null) { S arg = web_operandText(node); print(function + " " + arg); callMC(function, web, arg); } } showWeb(web); }