If we consider your definition,
exists :: (t -> Bool) -> [t] -> Bool
exists f a []=error
exists f a (x:xs)
|if x∈f a =True
|otherwise= x:f a xs
We see your type
exists :: (t -> Bool) -> [t] -> Bool
, exists , (t -> Bool) [t]. a Bool. .
:
exists f a [] = error
. f [] , a . , :
exists f [] = error
error . , . , exists (<2) []. True False? , - x in [], f x?
exists f a (x:xs)
|if x∈f a =True
|otherwise= x:f a xs
, a , . a, . , if , :
exists f (x:xs)
| x∈f = True
| otherwise = x:f xs
x∈f , f x . , f x true. , , . , , - lo n 'behold, x !
, . otherwise , f x True. , x , .
x : f xs . : , , - - Bool. , . , x , , .
, , , . - xs , exists .
, , - . , : " exists, Bool?".