t.make ~id:(module Comparable2)
    </code></pre>
<p>

    Here, the compiler would infer <code class="code">mySet1</code> and <code class="code">mySet2</code> having different type, so
    e.g. a `merge` operation that tries to merge these two sets will correctly fail.
<p>

    <pre class="codepre"><code class="code">      val mySet1 : ((int * int), Comparable1.identity) t
      val mySet2 : ((int * int), Comparable2.identity) t
    </code></pre>
<p>

    <code class="code">Comparable1.identity</code> and 