public PrtValue ExecuteToCompletion(StateImpl application, PrtMachine parent, params PrtValue[] args) { parent.PrtPushFunStackFrame(this, CreateLocals(args)); Execute(application, parent); if (parent.continuation.reason != PrtContinuationReason.Return) { throw new PrtInternalException("Unexpected continuation reason"); } return(parent.continuation.retVal.Clone()); }