2]</sup></a>. The principal difference between coroutines and routines is that
      a coroutine enables explicit suspend and resume of its progress via additional
      operations by preserving execution state and thus provides an <span class="bold"><strong>enhanced
      control flow</strong></span> (maintaining the execution context).
    </p>
<h4>
<a name="coroutine.intro.h1"></a>
      <span class="phrase"><a name="coroutine.intro.how_it_works"></a></span><a class="link" href="intro.html#coroutine.intr