title: how to get proper printformat type for two string paramters
body: <p>I would like to define a printformatype type such as :</p>
  
  <pre><code>type DblStringPath = PrintfFormat&lt;(string -&gt; string-&gt; string),unit,string,string,string&gt;
  </code></pre>
  
  <p>In order to use like this :</p>
  
  <pre><code>let myValue : DblStringPath= "/%s/xxx/%s"
  </code></pre>
  
  <p>the following works like a charm :</p>
  
  <pre><code>type StrPath = PrintfFormat&lt;(string -&gt; string),unit,string,string,string&gt;
  let myValue2 : StrPath= "/aaa/bbb/%s"
  </code></pre>
  
  <p>I was thinking that the difference between <code>"/aaa/bbb/%s"</code> and <code>"/%s/xxx/%s"</code> would be <code>(string-&gt; string)</code> vs <code>(string-&gt;string-&gt; string)</code></p>
  
  <p>But there is an error :</p>
  
  <blockquote>
    <p>expecting a string  but here has type string *string</p>
  </blockquote>
  
  <p>I then tried to change it to </p>
  
  <pre><code>type DblStringPath = PrintfFormat&lt;(string * string-&gt; string),unit,string,string,string&gt;
  </code></pre>
  
  <p>but I have another error : </p>
  
  <blockquote>
    <p>expecting a string*string-> string but given string -> string ->
    string</p>
  </blockquote>
  
  <p>I am lost in understanding, any help would be nice...</p>