title: Defining an F# Generic function that accepts a sequence of tuples
body: <p>I am trying to write a function in F# 3.0 that accepts a sequence of tuples and returns a Dictionary but I can't seem to get the syntax right. The goal is to pass in a sequence of tuples of type 'K*'V and create a Dictionary&lt;'K,'V>. Although I have tried various permutations, I cannot get the compiler to accept my syntax, for example:</p>
  
  <pre><code>CreateDictionary&lt;'K, 'V, 'T when 'K : equality and T : 'K*'V&gt;(s : seq&lt;'T&gt;)
  </code></pre>
  
  <p>On the other hand, this declaration is accepted:</p>
  
  <pre><code>CreateDictionary&lt;'K, 'V when 'K : equality&gt;(s : seq&lt; Tuple&lt;'K,'V&gt; &gt;)
  </code></pre>
  
  <p>but when I try to call it by passing seq&lt;'K*'V> the compiler complains at the call site that: </p>
  
  <p><em><strong>...the type seq is not compatible with the type seq>...</em></strong></p>
  
  <p>Which is confusing because I thought that F# tuples corresponded to System.Tuple&lt;>. So, obviously I'm missing something here. </p>
  
  <p>What is the best way to declare a generic method that accepts a sequence of tuples?</p>