Instead of running the main thread as a repl thread and whatnot, I think the main thread needs to convert itself into a scheduler thread after all it's command line parsing is done. This is what most languages do, and I dont really see why cedar needs to be different. This would mean converting the repl into a cedar program, but that's not really a problem.