sbool preload_done; static void preload(S vars, O sow, O reap) { if (preload_done) callF(reap); else { final new Flag goOn; final Var nextProgramID = new(programID()); showButtons("Go on", r { hideControls(); // hide button again goOn.raise(); }, "Go on as...", r { selectSnippetID(voidfunc(S snippetID) { hideControls(); nextProgramID.set(snippetID); goOn.raise(); }); }); callF(sow); print("Preload done"); goOn.waitUntilUp(); Class c = hotwireDependent(nextProgramID!); setOpt(c, preload_done := true); copyFields(mc(), c, splitAtSpace(vars)); callMain(c); } }