GHC.Exts contains a couple of really useful functions: groupWith :: (Ord b) => (a -> b) -> [a] -> [[a]] sortWith :: (a -> b) -> [a] -> [a] There seems to be no reason why they wouldn't be -- more sensibly -- in Data.List. I propose we move them (and "the" while we're at it). Tom