The sort function implements a stable sorting algorithm. It is
a special case of sortBy, which allows the programmer to supply
their own comparison function.
Elements are arranged from lowest to highest, keeping duplicates in
the order they appeared in the input.

>>> sort [1,6,4,3,2,5] [1,2,3,4,5,6]The argument must be finite.

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.

>>> cycle [] *** Exception: Prelude.cycle: empty list >>> take 10 (cycle [42]) [42,42,42,42,42,42,42,42,42,42] >>> take 10 (cycle [2, 5, 7]) [2,5,7,2,5,7,2,5,7,2] >>> take 1 (cycle (42 : undefined)) [42]

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

>>> reverse [] [] >>> reverse [42] [42] >>> reverse [2,5,7] [7,5,2] >>> reverse [1..] * Hangs forever *

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

>>> init [1, 2, 3] [1,2] >>> init [1] [] >>> init [] *** Exception: Prelude.init: empty listWARNING: This function is partial. Consider using unsnoc instead.

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

>>> tail [1, 2, 3] [2,3] >>> tail [1] [] >>> tail [] *** Exception: Prelude.tail: empty listWARNING: This function is partial. You can use case-matching or uncons instead.

**Packages**- is:exact