title: Typed abstract syntax tree with function application
body: <p>I am trying to write a typed abstract syntax tree datatype that can represent
  function application.</p>
  
  <p>So far I have</p>
  
  <pre><code>type Expr&lt;'a&gt; =
      | Constant    of 'a
      | Application of Expr&lt;'b -&gt; 'a&gt; * Expr&lt;'b&gt; // error: The type parameter 'b' is not defined
  </code></pre>
  
  <p>I don't think there is a way in F# to write something like 'for all b' on that last line - am I approaching this problem wrongly?</p>