This function may be used as a value for Data.Foldable.foldMap in a Foldable instance.

map f xs is the list obtained by applying f to each element of xs, i.e.,
> map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]
> map f [x1, x2, ...] == [f x1, f x2, ...]

Application operator. This operator is redundant, since ordinary application (f x) means the same as (f $ x). However, $ has low, right-associative binding precedence, so it sometimes allows parentheses to be omitted; for example:
> f $ g $ h x = f (g (h x))
It is also useful in higher-order situations, such as map ($ 0) xs, or Data.List.zipWith ($) fs xs.

Strict (call-by-value) application, defined in terms of seq.

Apply a transformation everywhere in bottom-up manner

Apply a transformation everywhere in top-down manner

The sortWith function sorts a list of elements using the user supplied function to project something out of each element

A combination of parList and map, encapsulating a common pattern:
> parMap strat f = withStrategy (parList strat) . map f

until p f yields the result of applying f until p holds.

Sequential function application. The argument is evaluated using the given strategy before it is given to the function.

Parallel function application. The argument is evaluated using the given strategy, in parallel with the function application.

the deep analogue of $!. In the expression f $!! x, x is fully evaluated before the function f is applied to it.

iterate f x returns an infinite list of repeated applications of f to x:
> iterate f x == [x, f x, f (f x), ...]

Function composition.

Extend a generic query by a type-specific case

Type extension of queries for type constructors

ext2Q :: (Data d, Typeable2 t) => (d -> q) -> (forall d1 d2. (Data d1, Data d2) => t d1 d2 -> q) -> d -> q

Type extension of queries for type constructors