!7 static L webs; p { makeForm(allWebsFromCE(), "an email"); } svoid makeForm(L webs, S what) { new L form; printWeb(first(webs)); print("Looking for: " + what); for (S thing : webs_findNodeAndRelationB(webs, what, "has")) { S whichIs = first(webs_findNodeAndRelationB(webs, thing, "which is")); S renderAs = first(webs_findNodeAndRelationB(webs, whichIs, "render as")); S function = first(webs_findNodeAndRelationB(webs, renderAs, "made by function")); print(thing + " (" + whichIs + ") -> " + renderAs + " -> " + function); if (function != null) addAll(form, thing, makeAndCall(function)); } form.add(func { infoBox("Hello world!"); false; }); showForm(asObjectArray(form)); }