data List a = Nil | Cons a (List a) data [a] = [] | a : [a]
filter :: (a -> Bool) -> [a] -> [a] takeWhile :: (a -> Bool) -> [a] -> [a] partition :: (a -> Bool) -> [a] -> ([a],[a])
nubBy :: (a -> a -> Bool) -> [a] -> [a] data Ordering = LT | EQ | GT minimumBy :: (a -> a -> Ordering) -> [a] -> a