ode></pre>
<p>Now let’s take the function <code>fst</code>:</p>
<pre><code class="language-clojure">(fn [p] (p (fn [x] (fn [y] x))))
</code></pre>
<p>which becomes (still abstracting from <code>A</code> and <code>B</code>):</p>
<pre><code class="language-clojure">(lambda [p (pair A B)]
    (p (lambda [x A]
          (lambda [y B]
              x))))
</code></pre>
<p>The type of the term, once again more interestingly, is:</p>
<pre><code class="language-clojure">(==&gt; (pair A B)
     A)
</code></pre>
<p>