filter :: (a -> Bool) -> [a] -> [a]