# :: Eq a => [a] -> a -> Bool -package:data-ordlist

(∋) = flip (∈) U+220B, CONTAINS AS MEMBER
(∌) = flip (∉) U+220C, DOES NOT CONTAIN AS MEMBER
(∋) = flip (∈) U+220B, CONTAINS AS MEMBER
(∌) = flip (∉) U+220C, DOES NOT CONTAIN AS MEMBER
Check membership for the same list often. Use partially applied to create membership predicate hasElem xs :: a -> Bool.
• First time: O(n log n) in the worst case.
• Subsequently: O(log n).
Specification: hasElem xs == (elem xs).
elem is the list membership predicate, usually written in infix form, e.g., x `elem` xs. For the result to be False, the list must be finite; True, however, results from an element equal to x found at a finite index of a finite or infinite list.
```>>> 3 `elem` []
False

>>> 3 `elem` [1,2]
False

>>> 3 `elem` [1,2,3,4,5]
True

>>> 3 `elem` [1..]
True

>>> 3 `elem` [4..]
* Hangs forever *
```
notElem is the negation of elem.
```>>> 3 `notElem` []
True

>>> 3 `notElem` [1,2]
True

>>> 3 `notElem` [1,2,3,4,5]
False

>>> 3 `notElem` [1..]
False

>>> 3 `notElem` [4..]
* Hangs forever *
```
(∈) = elem U+2208, ELEMENT OF
(∉) = notElem U+2209, NOT AN ELEMENT OF
Does the element occur in the structure? Note: elem is often used in infix form.

#### Examples

Basic usage:
```>>> 3 `elem` []
False
```
```>>> 3 `elem` [1,2]
False
```
```>>> 3 `elem` [1,2,3,4,5]
True
```
For infinite structures, the default implementation of elem terminates if the sought-after value exists at a finite distance from the left side of the structure:
```>>> 3 `elem` [1..]
True
```
```>>> 3 `elem` ([4..] ++ [3])
* Hangs forever *
```
notElem is the negation of elem.

#### Examples

Basic usage:
```>>> 3 `notElem` []
True
```
```>>> 3 `notElem` [1,2]
True
```
```>>> 3 `notElem` [1,2,3,4,5]
False
```
For infinite structures, notElem terminates if the value exists at a finite distance from the left side of the structure:
```>>> 3 `notElem` [1..]
False
```
```>>> 3 `notElem` ([4..] ++ [3])
* Hangs forever *
```
Does the element occur in the structure?
O(n) Check if the vector contains an element
O(n) Check if the vector does not contain an element (inverse of elem)
(∈) = elem U+2208, ELEMENT OF
(∉) = notElem U+2209, NOT AN ELEMENT OF
Test element using ordered set.