template _Coroutine Binsertsort { T value; // communication: value passed down/up tree void main(); // YOU WRITE THIS ROUTINE public: _Exception Sentinel {}; void sort( T value ) { // value to be sorted Binsertsort::value = value; resume(); } T retrieve() { // retrieve sorted value resume(); return value; } }; 8 25 6 8 5 99 100 101 7 3 1 3 5 0 10 9 8 7 6 5 4 3 2 1 0