title: F# extensions used in a context where a function is not expected
body: <p>Hi I have an extension method in f# that checks is TcpClinet is connected and it is rather simple code:</p>
  
  <pre><code>[&lt;Extension&gt;]
  type TcpExtension() =
      [&lt;Extension&gt;]
      static member inline IsConnectionEstablished(client: TcpClient) : bool = 
         let ipProperties : IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties()
         let tcpConnection : Option&lt;TcpConnectionInformation&gt; = ipProperties.GetActiveTcpConnections() |&gt; Seq.tryFind(fun connection -&gt; connection.LocalEndPoint.Equals(client.Client.LocalEndPoint) &amp;&amp; connection.RemoteEndPoint.Equals(client.Client.RemoteEndPoint))
  
         match tcpConnection with
           | Some connection -&gt; true
           | None -&gt; false
  </code></pre>
  
  <p>Now I am trying to use it by simple:</p>
  
  <pre><code>let private WaitForData (client : TcpClient) = 
      let isConnectionAlive : bool = client.IsConnectionEstablished
      isConnectionAlive
  </code></pre>
  
  <p>But I am getting message that looks like:</p>
  
  <blockquote>
    <p>This function takes too many arguments, or is used in a context where a function is not expected</p>
  </blockquote>
  
  <p>When I checked Microsoft documentation this is how they show it should be handled, what am I missing here?</p>