Concatenate a list of lists.

intercalate xs xss is equivalent to (concat (intersperse xs xss)). It inserts the list xs in between the lists in xss and concatenates the result.

The transpose function transposes the rows and columns of its argument. For example,
> transpose [[1,2,3],[4,5,6]] == [[1,4],[2,5],[3,6]]

The concatenation of all the elements of a container of lists.

This generalizes the list-based concat function.

cycle ties a finite list into a circular one, or equivalently, the infinite repetition of the original list. It is the identity on infinite lists.

Return all the elements of a list except the last one. The list must be non-empty.

reverse xs returns the elements of xs in reverse order. xs must be finite.

Extract the elements after the head of a list, which must be non-empty.

The join function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level.

A list producer that can be fused with foldr. This function is merely
> augment g xs = g (:) xs
but GHC's simplifier will transform an expression of the form foldr k z (augment g xs), which may arise after inlining, to g k (foldr k z xs), which avoids producing an intermediate list.

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