<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi,<div class=""><br class=""></div><div class=""><font size="4" class="">I’m trying to sort a list of tuples. A char and a count of that char (Char , Int) </font></div><div class="">e.g.</div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">[ ('r',2), ('c',2),('a', 2), ('b',3), ('f',2)]</span></div></div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class="">e.g. ‘r’ occurs twice etc.</div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class="">The order should be based on the count first and then ties broken by the </div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class="">natural ordering of char.</div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class="">So </div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class="">[ ('r',2), ('c',2),('a', 2), ('b',3), ('f',2)]</div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class="">will sort as</div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class="">[('b',3),('a', 2), ('c',2),('f',2), ('r',2)]</div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; font-size: 18px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class="">I initially tried variants on</div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><font face="Menlo" size="4" class="">sortBy (compare `on` snd)</font></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><font face="Menlo" size="4" class=""><br class=""></font></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><font face="Menlo" size="4" class="">and then made a type Tup = T (Char, Int)</font></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><font face="Menlo" size="4" class="">and defined Eq and then got to the point where I felt that this had become too difficult for a simple problem and concluded that I’m missing a point somewhere and need a bit of help!</font></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><font face="Menlo" size="4" class=""><br class=""></font></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><font face="Menlo" size="4" class="">Many thanks</font></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><font face="Menlo" size="4" class="">M</font></div></body></html>