title: Kotlin's Iterable and Sequence look exactly same. Why are two types required?
body: <p>Both of these interfaces define only one method</p>
  
  <pre><code>public operator fun iterator(): Iterator&lt;T&gt;
  </code></pre>
  
  <p>Documentation says <code>Sequence</code> is meant to be lazy. But isn't <code>Iterable</code> lazy too (unless backed by a <code>Collection</code>)?</p>