title: How can I match an empty list of tuples?
body: <p>The following function gives a compilation error at the point I try to match an empty list:</p>
  
  <pre><code>let rec tuplesToList (acc: int list) (remaining: int*int list) =
      match remaining with
      | [] -&gt; acc
      | (a, b) :: tail -&gt; tuplesToList (a :: b :: acc)
  </code></pre>
  
  <p>The error is:</p>
  
  <pre><code>This expression was expected to have type int * int list but here has type 'a list
  </code></pre>
  
  <p>This works fine when <code>remaining</code> is a simple list of <code>int</code>s rather than tuples.  How can I match an empty list of tuples?</p>