nub package:discrimination

O(n). This upgrades nub from Data.List from O(n^2) to O(n) by using productive unordered discrimination.
nub = nubWith id
nub as = head <$> group as
O(n). Online nub with a Schwartzian transform.
nubWith f as = head <$> groupWith f as