title: Composing Option with List in for-comprehension gives type mismatch depending on order
body: <p>Why does this construction cause a Type Mismatch error in Scala?</p>
  
  <pre><code>for (first &lt;- Some(1); second &lt;- List(1,2,3)) yield (first,second)
  
  &lt;console&gt;:6: error: type mismatch;
   found   : List[(Int, Int)]
   required: Option[?]
         for (first &lt;- Some(1); second &lt;- List(1,2,3)) yield (first,second)
  </code></pre>
  
  <p>If I switch the Some with the List it compiles fine:</p>
  
  <pre><code>for (first &lt;- List(1,2,3); second &lt;- Some(1)) yield (first,second)
  res41: List[(Int, Int)] = List((1,1), (2,1), (3,1))
  </code></pre>
  
  <p>This also works fine:</p>
  
  <pre><code>for (first &lt;- Some(1); second &lt;- Some(2)) yield (first,second)
  </code></pre>