sortWith package:slist

O(n log n). Sorts a list by comparing the results of a key function applied to each element. Elements are arranged from lowest to highest, keeping duplicates in the order they appeared in the input.
>>> sortWith fst $ slist [(2, "world"), (4, "!"), (1, "Hello")]
Slist {sList = [(1,"Hello"),(2,"world"),(4,"!")], sSize = Size 3}