// a, b are indices into the chat history static Web chatLinesAsWeb2(int a, int b, O makeNode) { ret chatLinesAsWeb2(stefansChat_readHistory_fullMsgs(a, b), makeNode); } // makeNode: voidfunc(ChatMsg, WebNode) static Web chatLinesAsWeb2(L msgs, O makeNode) { Web web = simpleWeb(); new L nodes; for i over msgs: { ChatMsg msg = msgs.get(i); WebNode n = web.newNode(); web_addRelation(last(nodes), n, 'then); web_setPosition(n, 0.5, 0.2+i*0.6/max(1, l(msgs)-1)); nodes.add(n); pcallF(makeNode, msg, n); } ret web; }