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}