title: Multiple parameters to methods in F#
body: <p>I've got a class written in F# that I'm consuming in C#, that defines a method <code>Render</code>:</p>
  
  <pre><code>member this.Render template (context: IContext) =
      let tokens = Lexer.tokenize template
      let parser = new DefaultParser([for filter in _filters -&gt; filter])
  
      let resp = new StringBuilder()
      for node in parser.Parse tokens None do
          ignore &lt;| resp.Append(node.render context)
  
      resp.ToString()
  </code></pre>
  
  <p>The signature of this method is <code>template:string -&gt; (IContext -&gt; string)</code>, which of course reads as "member <code>Render</code> takes a <code>string</code> parameter, then returns a function that takes an <code>IContext</code> and produces a string.</p>
  
  <p>If I change the declaration from "member" to a let binding, defining it as a function local to the class definition:</p>
  
  <pre><code>let Render template (context: IContext) = ...
  </code></pre>
  
  <p>Then the signature becomes what you would expect it to be - <code>string -&gt; IContext -&gt; string</code>, which reads "<code>Render</code> takes a string, then an <code>IContext</code> and produces a string".</p>
  
  <p>Is there a way to make a member behave like the let binding? This is causing issues consuming this member from C#, as the signature becomes <code>Render(string, FastFunc&lt;IContext, string&gt;)</code>, which is not overly usable.</p>