**Packages**- base

break, applied to a predicate p and a list xs, returns a tuple (possibly empty) of xs of elements that *do not satisfy* p and second element is the remainder of the list:
> break (> 3) [1,2,3,4,1,2,3,4] == ([1,2,3],[4,1,2,3,4])
> break (< 9) [1,2,3] == ([],[1,2,3])
> break (> 9) [1,2,3] == ([1,2,3],[])
break p is equivalent to span (not . p).

span, applied to a predicate p and a list xs, returns a tuple of xs of elements that satisfy p and second element is the remainder of the list:
> span (< 3) [1,2,3,4,1,2,3,4] == ([1,2],[3,4,1,2,3,4])
> span (< 9) [1,2,3] == ([1,2,3],[])
> span (< 0) [1,2,3] == ([],[1,2,3])
span p xs is equivalent to (takeWhile p xs, dropWhile p xs)

The partition function takes a predicate a list and returns the pair of lists of elements which do and do not satisfy the predicate, respectively; i.e.,
> partition p xs == (filter p xs, filter (not . p) xs)