On ordered lists, 
nub is equivalent to 
nub, except that
it runs in linear time instead of quadratic. On unordered lists it
also removes elements that are smaller than any preceding element.
nub [1,1,1,2,2] == [1,2]
nub [2,0,1,3,3] == [2,3]
nub = nubBy (<)