title: Static extension methods on Seq module
body: <p>According to <a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2008/09/10/object-oriented-f-extension-everything.aspx" rel="noreferrer">this post</a>, F# supports extension methods on object instances and static classes. For example:</p>
  
  <pre><code>module CollectionExtensions = 
      type System.Linq.Enumerable with   
          static member RangeChar(first:char, last:char) = {first .. last}
  
  open ExtensionFSharp.CollectionExtensions 
  </code></pre>
  
  <p>If I type <code>System.Linq.Enumerable.</code>, the static method <code>RangeChar</code> appears in my Intellisense window.</p>
  
  <p>I want to add a static method, <code>for_alli</code>, to the Seq module. I've modified the following code above as follows:</p>
  
  <pre><code>module SeqExtensions =
      type Microsoft.FSharp.Collections.Seq with   (* error on this line *)
          static member for_alli f l =
              l
              |&gt; Seq.mapi (fun i x -&gt; i, x)
              |&gt; Seq.for_all (fun (i, x) -&gt; f i x)
  </code></pre>
  
  <p>Although both snippets of code have the same structure, <code>SeqExtensions</code> doesn't compile. F# highlights the word <code>Seq</code> and returns the error "The type 'Seq' is not defined".</p>
  
  <p><strong>How do I create static extension methods on Seq module?</strong></p>