The product function computes the product of a finite list of numbers.

The sum function computes the sum of a finite list of numbers.

Extract the first element of a list, which must be non-empty.

Extract the last element of a list, which must be finite and non-empty.

The product function computes the product of the numbers of a structure.

The sum function computes the sum of the numbers of a structure.

The genericLength function is an overloaded version of length. In particular, instead of returning an Int, it returns any type which is an instance of Num. It is, however, less efficient than length.

foldl1 is a variant of foldl that has no starting value argument, and thus must be applied to non-empty lists.

foldr1 is a variant of foldr that has no starting value argument, and thus must be applied to non-empty lists.

A strict version of foldl1

The maximumBy function takes a comparison function and a list and returns the greatest element of the list by the comparison function. The list must be finite and non-empty.

The minimumBy function takes a comparison function and a list and returns the least element of the list by the comparison function. The list must be finite and non-empty.

List index (subscript) operator, starting from 0. It is an instance of the more general Data.List.genericIndex, which takes an index of any integral type.

The genericIndex function is an overloaded version of !!, which accepts any Integral value as the index.

maximum returns the maximum value from a list, which must be non-empty, finite, and of an ordered type. It is a special case of maximumBy, which allows the programmer to supply their own comparison function.