title: F# performance bug?
body: <pre><code>let test1fun x = [for i in 1..x-&gt; i]
  
  let test2fun x y= [for i in 1..x
                      do for i in 1..y-&gt; i]
  
  let  singlesearcher i =
      let rec searcher j agg =
          if j &gt; i 
          then agg 
          else searcher (j+1) (i::agg)
      searcher 1 []
  
  
  let  doublesearcher i j =
      let rec searcher k l agg =
          if k &gt; i 
          then searcher 1 (l+1) agg
          else if l &gt; j 
               then agg
               else searcher (k+1) l ((k,l)::agg)
      searcher 1 1 []
  </code></pre>
  
  <p>executing the above with #time and 10000 for all inputs yields</p>
  
  <pre><code>list comprehension/singlesearcher-&gt; negligable
  cross product -&gt; 320
  list comprehension crossproduct -&gt; 630
  </code></pre>
  
  <p>Why is the nested list comprehension more than twice the the functional version?</p>