This will allow us to say an instance is compiled before we're actually done compiling every function. Then, if a function is called before it's done compiling, we push it to the front of the compilation queue, then wait for it to finish. When it finishes, we perform the actual call.