title: How to get the product of a tuple of ints with variable number of arguments?
body: <pre><code>type TotalSizeToken = TotalSizeToken with
      static member TotalSize(_: TotalSizeToken, (a,b,c,d,e)): int = a*b*c*d*e
      static member TotalSize(_: TotalSizeToken, (a,b,c,d)): int = a*b*c*d
      static member TotalSize(_: TotalSizeToken, (a,b,c)): int = a*b*c
      static member TotalSize(_: TotalSizeToken, (a,b)): int = a*b
      static member TotalSize(_: TotalSizeToken, x: int): int = x
  
  let inline size_to_total_size x = 
      ((^s) : (static member TotalSize: TotalSizeToken * ^s -&gt; int) TotalSizeToken, x)
  
  let t = size_to_total_size (1,5) // Error: Expecting a type supporting the operator TotalSize, but given a tuple type.
  </code></pre>
  
  <p>I had not expected the <code>x</code> argument in <code>size_to_total_size</code> to require the TotalSize member. This feels like a compiler bug.</p>
  
  <p>I am not sure how to get this to work. Any ideas?</p>