filter -package:Cabal -package:unordered-containers -package:text -package:containers

filter, applied to a predicate and a list, returns the list of those elements that satisfy the predicate; i.e.,
filter p xs = [ x | x <- xs, p x]
>>> filter odd [1, 2, 3]
[1,3]
filter p xs removes any elements from xs that do not satisfy p.
O(n) filter, applied to a predicate and a ByteString, returns a ByteString containing those characters that satisfy the predicate.
O(n) filter, applied to a predicate and a ByteString, returns a ByteString containing those characters that satisfy the predicate.
O(n) filter, applied to a predicate and a ShortByteString, returns a ShortByteString containing those characters that satisfy the predicate.
O(n) filter, applied to a predicate and a ByteString, returns a ByteString containing those characters that satisfy the predicate.
O(n) filter, applied to a predicate and a ByteString, returns a ByteString containing those characters that satisfy the predicate.
Filter all keys/values that satisfy some predicate.
O(n) Drop all elements that do not satisfy the predicate.
Drop elements which do not satisfy the predicate
Drop elements which do not satisfy the predicate
O(n) Drop all elements that do not satisfy the predicate.
O(n) Drop all elements that do not satisfy the predicate.
O(n) Drop all elements that do not satisfy the predicate.
O(n) Drop all elements that do not satisfy the predicate.
Keep only values in the stream passing a given predicate. Subject to fusion
Keep only values in the stream passing a given predicate. Subject to fusion Since 0.3.0
Generates a value that satisfies a predicate. Shrinks of the generated value will also satisfy the predicate. From the original generator's shrink tree, any values that fail the predicate will be removed, but any subsequent shrinks that satisfy it will be retained. Compared to filter, shrinking may be slower but will be optimal. It's possible that the predicate will never pass, or will only pass at a larger size than we're currently running at. To avoid looping forever, we limit the number of retries, and grow the size with each retry. If we retry too many times then the whole generator is discarded.
Returns a tree containing only elements that match the predicate. If the root of the tree does not match the predicate then Nothing is returned.
(filter predicate) only forwards values that satisfy the predicate.
filter (pure True) = cat

filter (liftA2 (&&) p1 p2) = filter p1 >-> filter p2

filter f = mapMaybe (\a -> a <$ guard (f a))