F# type constructor doesn't act like a function : <p>If I define a type like this:</p>

<pre><code>type Foo = Items of seq&lt;int&gt;
</code></pre>

<p>I can create a <code>Foo</code> as follows:</p>

<pre><code>Items [1;2;3]
</code></pre>

<p>However, the following doesn't work:</p>

<pre><code>[1;2;3] |&gt; Items
</code></pre>

<p>The error message is:</p>

<pre><code>Type mismatch. Expecting a
    int list -&gt; 'a    
but given a
    seq&lt;int&gt; -&gt; Foo
</code></pre>

<p>Shouldn't the compiler be able to convert an <code>int list</code> into a <code>seq&lt;int&gt;</code>? If the <code>Items</code> constructor was a normal function, I could invoke it either way:</p>

<pre><code>let length ints = Seq.length ints
printfn "%A" (length [1;2;3])
printfn "%A" ([1;2;3] |&gt; length)
</code></pre>
