(a -> Boolean) -> [a] -> [a], where a and b are type variables.