ction on <code>A</code>. We give to <code>A</code> the type <code>:type</code> to say that it <em>is</em> an arbitrary type. The constant <code>:type</code> is the <em>type of types</em>.</p>
<p>We can now apply the generic identity in an explicitely-typed context:</p>
<pre><code class="language-clojure">(((lambda [A :type] (lambda [x A] x)) boolean) true)
--&gt; ((lambda [x boolean] x) true)
--&gt; true
</code></pre>
<p>or:</p>
<pre><code class="language-clojure">(((lambda [A :type] (lambda [x A] x)) int) 