Here's another common function I use all the time, which appears to
be missing from Data.List:
elemBy :: (a -> a -> Bool) -> a -> [a] -> Bool
elemBy eq _ [] = False
elemBy eq x (y:ys) = x `eq` y || elemBy eq x ys
Regards,
Malcolm