How to write a function that takes a predicate `f` and a list `xx` and reutrns true if `fx` is true for some `x∈xs`?

For example:

```
 ghci>exists (>2) [1,2,3]
     True

```

This is the function I wrote:

```
 exists :: (t->Bool)->[t]->Bool
    exists f a []=error
    exists f a (x:xs)
                |if x∈f a  =True
                |otherwise= x:f a xs

```

I know this is not right, but I don't know why. Do I need to write this predicate function `f` first, then used it inside the function `exists`. Because I really don't know how to compare one element of list `xs` with the function.