static L websMadeByProgram(S progID) { new L webs; // TODO: clean up file handle in case of error IterableIterator l = scanLog_unstructure_iterator(progID, "webs-made.txt"); S src = progID; for (SoftwareMadeWeb o : l) pcall { Web web = o.web; if (web == null) web = (Web) unstructure(o.structure); if (web != null) webs.add(web_intern(web_setSourceIfEmpty(web, src))); } ret webs; }