title: When should I use yield and when yield* with Koa.js
body: <p>Browsing through koa samples, docs and middleware, I noticed both forms of <code>yield</code> are being used without any particular difference i noticed. The most extreme case is in koa-mount, where the <a href="https://github.com/koajs/mount#mounting-middleware" rel="nofollow">sample code</a> uses the <code>yield next;</code> form, and the package <a href="https://github.com/koajs/mount/blob/master/index.js" rel="nofollow">itself</a> uses <code>yield*</code> several times. Other packages (<a href="https://github.com/queckezz/koa-views/blob/master/index.js" rel="nofollow">koa-views</a> for example) also use the <code>yield next</code> form.</p>
  
  <p>I understand the difference between the 2 forms as defined by the language, but don't understand how is it that in the context of koa they're used interchangeably and when is it correct to use one over the other.</p>
  
  <h3>EDIT 29/5</h3>
  
  <p>After some more research, I understand that since koa is built on top of co, and co is able to process multiple types of asynchronous  results (thunks, Promises...), it is possible that both are <em>legal</em>, but I'm still not sure what guideline helps decide which form to use in each scenario.</p>