<div dir="ltr"><div><div><div><div>Dear All,<br><br></div>I am trying to produce a Map, where the (tricky) idea is that the key is a pair, (t1, t2), and the key is considered identical under ordering. Thus:<br><br></div>(t1, t2) is the same as (t2, t1) but<br></div>(t1, t3) is not the same as (t1,t2).<br><br></div>This LOOKS like a equality definition. However, the Map key typeclass is defined as Ord, which requires me to define compare:<br><pre style class=""><code><span class="">instance</span><span class=""> Ord Edge </span><span class="">where</span><span class="">
  </span><span class="">(</span><span class="">Edge s1 </span><span class="">_</span><span class="">)</span><span class=""> </span><span class="">`</span><span class="">compare</span><span class="">`</span><span class=""> </span><span class="">(</span><span class="">Edge s2 </span><span class="">_</span><span class="">)</span><span class=""> </span><span class="">=</span><span class=""> s1 </span><span class="">`</span><span class="">compare</span><span class="">`</span><span class=""> s2<br><span style="font-family:arial,helvetica,sans-serif"><br></span></span></code></pre><pre style class=""><span style="font-family:arial,helvetica,sans-serif"><code><span class="">I am a bit stuck on how to use compare to define this type of eqlaity - any pointers very gratefully received.<br></span></code></span></pre><pre style class=""><span style="font-family:arial,helvetica,sans-serif"><code><span class="">BW,<br></span></code></span></pre><pre style class=""><span style="font-family:arial,helvetica,sans-serif"><code><span class="">Matt<br></span></code></span></pre><br></div>